繁体   English   中英

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

[英]jQuery Prevent submit input to send form

在屏幕上显示了几种形式,其中一种形式具有输入(提交)。 该输入的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;
});

问题在于无论如何都将发送表单,这种情况不应该发生。

如果返回的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只需input type:submit一个button
然后使用jQuery发送表单(验证后)。

并防止在按下回车键时提交表单,因为@Daniel Lisik指出了...
需要完成两个条件(没有javascript)

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

正如Daniel所说,您应该将代码放入jQuery submit函数中

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

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

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

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

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

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

$(document).ready(function() {

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM