即使jQuery submit()函数返回false,Drupal表单仍会继续提交;

时间:2011-07-19 03:07:40

标签: jquery forms drupal drupal-6 validation

我有一个Drupal表单,

<form action="/forms/contact.html"  accept-charset="UTF-8" method="post" id="webform-client-form-1148-1" class="webform-client-form" enctype="multipart/form-data"> 

以下提交,

<input type="submit" name="op" id="edit-submit-1" value="Submit"  class="form-submit" />

包含表单的页面加载以下jQuery内联,

jQuery("#webform-client-form-1148-1").submit(function(){return false;});

无论我尝试什么,提交按钮始终提交表单。由于我返回false,我希望表单忽略提交过程并完全取消。

为什么表单会继续提交,即使表单的submit()函数返回“return false”?

这是一个简单的例子,我在我的代码中愚蠢地迫使提交在表单上总是返回false,因此,永远不应该提交。

2 个答案:

答案 0 :(得分:3)

我不久前回答了类似的问题。查看Stop form from submitting when searching with jQuery

解决方案是应用event.preventDefault()事件方法。不要忘记通过函数传递事件。

e.g。

jQuery("#webform-client-form-1148-1").submit(function(event){
   event.preventDefault();
});

答案 1 :(得分:1)

删除input type="submit"

<input type="button" name="op" id="edit-submit-1" value="Submit"  class="form-submit" />

并试试这个..

$('#edit-submit-1').click(function(){
        jQuery("#webform-client-form-1148-1").submit(function(){return false;});

});

如果您根本不想提交表单,可以使用unbind()die()

您也可以使用event.preventDefault(); 来阻止表单提交的默认操作。

希望这些替代方案可以帮助你。