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

问题描述 投票:0回答:3

有一个包含多个表单的屏幕,其中一个有输入(提交)。该输入的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;
});

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

javascript jquery forms submit
3个回答
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. 多个输入字段。

0
投票

正如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();
});

0
投票

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

$(document).ready(function() {

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.