我正在使用jQuery Form Plugin将两个表单的提交事件绑定在同一页面上,以便将它们提交给单独的PHP脚本,这些脚本将标记返回到页面上的单独div .
一种形式刷新下一个 . 我使用“live”,因此每个表单在刷新时都会重新绑定事件:
$(document).ready(function() {
/* Form 1 */
$('#frmSearch').live('submit', function() {
$(this).ajaxSubmit({
target: '#divResults',
url: 'search_div.php'
});
return false;
});
/* Form 2 */
$('#frmResults').live('submit', function() {
$(this).ajaxSubmit({
target: '#divLookup',
url: 'lookup_div.php',
});
return false;
});
});
到现在为止还挺好 . 每个表单都可以使用ajax一次又一次地提交,并且所有绑定都可以从一个提交到下一个提交 .
当我尝试绑定第三个表单并在第二个表单的“success”选项中触发其提交事件时,会出现问题:
/* Form 2 */
$('#frmResults').live('submit', function() {
$(this).ajaxSubmit({
target: '#divLookup',
url: 'lookup_div.php',
success: function(responseText){
$('#frmLookup').submit();
}
});
return false;
});
/* Form 3 */
$('#frmLookup').live('submit', function() {
$(this).ajaxSubmit({
target: '#divMappings',
url: 'mapped_items_div.php',
});
return false;
});
当我这样做时,ajaxSubmit成功执行,但然后执行表单的默认提交,导致页面重新加载 . 请注意,我确实包括“return false;”禁止表单的默认提交,但由于某种原因它无论如何提交 .
我发现,如果我在Form 2的“提交”事件中“绑定”表格2的成功函数,并使用与表格3的“实时”相同的选项,则不会执行表格的默认提交 . 但这是多余的,如果可以,我想避免这样做 .
如何抑制表单3的默认提交行为?