【问题标题】:Drupal form continues to get submitted even if jQuery submit() function returns false;即使 jQuery submit() 函数返回 false,Drupal 表单也会继续提交;
【发布时间】:2011-07-19 03:07:39
【问题描述】:

我有一个 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,因此永远不应该提交。

【问题讨论】:

    标签: jquery forms drupal drupal-6 validation


    【解决方案1】:

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

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

    例如

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

    【讨论】:

    【解决方案2】:

    删除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(); too 来防止表单提交的默认操作。

    希望这些替代方案对您有所帮助。

    【讨论】:

      猜你喜欢
      • 2018-11-28
      • 2012-09-26
      • 1970-01-01
      • 2020-11-02
      • 2021-09-01
      • 2010-11-01
      • 1970-01-01
      • 2013-10-20
      相关资源
      最近更新 更多