jQuery阻止提交输入以发送表单

时间:2014-02-11 23:20:16

标签: javascript jquery forms submit

有一个包含多个表单的屏幕,其中一个表单有一个输入(提交)。 该输入的JS绑定点击事件是:

$('input#next').click(function(e){
   e.preventDefault();
   e.stopPropagation();
   ... some other checks ...
   bSubmit = dateField.val().match(/\d{2}\/\d{2}\/\d{4}/);
   return bSubmit;
});

问题是表格无论如何都是发送的,不应该发生。

3 个答案:

答案 0 :(得分:2)

如果返回的 bSubmitp值不是false ,则会提交form

使用return true你说按钮必须正常工作添加是......和 - 提交按钮用于发送表单 -

如果您想不惜一切代价停用,我建议使用预定义的return false

可能是:

  • 位于标记中,如:

    <form onsubmit="return false">
    
  • 您现在拥有函数中的
  • ,但创建条件值,例如:

    <form onsubmit="return yourFunction()">
    
  • 类似:

    $('form').submit(function() {
        // do stuff
        return false;
    });
    
  • 其他..

修改

此外..您可以将input type:submit更改为button 然后使用jQuery发送表单(验证后)。

输入键时,为了防止表单提交按 @Daniel Lisik 指出...
需要完成两个条件(没有javascript)

    表格中
  1. 没有 input type:submit按钮
  2. 多个输入字段。

答案 1 :(得分:0)

正如Daniel所说,你应该把你的代码放到jQuery submit函数

  

此方法是第一个变体中的.on(“submit”,handler)和第三个变种中的.trigger(“submit”)的快捷方式。

     

当用户尝试时,提交事件将发送到元素   提交表格。它只能附加到元素上。表格可以   通过单击显式提交,   ,或,或按Enter键   当某些表单元素具有焦点时。

https://api.jquery.com/submit/

直接来自jQuery网站的示例代码

$( "#target" ).submit(function( event ) {
  alert( "Handler for .submit() called." );
  event.preventDefault();
});

答案 2 :(得分:0)

更改按钮类型将禁用从启动时提交的输入:

$(document).ready(function() {

    $('input#next').attr("type", "button");

    // own code
    $('input#next').click( function() {
        // ...
    });
});

然后您可以在下面添加自己的代码。