Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery suppress submit event/submit按钮仅在禁用javascript时启用_Jquery_Html_Forms_Submit - Fatal编程技术网

Jquery suppress submit event/submit按钮仅在禁用javascript时启用

Jquery suppress submit event/submit按钮仅在禁用javascript时启用,jquery,html,forms,submit,Jquery,Html,Forms,Submit,我在表单上进行了一些客户端JavaScript验证。它工作得很好。但我想适应禁用JavaScript的用户。我的验证不是从表单的onsubmit属性运行的,而是绑定到表单中普通按钮的事件处理程序。因此,启动验证和提交的按钮实际上不是提交,而是type=“button”: 我的问题是,如果用户禁用了JS,则无法提交表单。我可以使用按钮type=“submit”,这将适用于禁用JS的用户,但它将*始终提交表单,并绕过启用JS的用户的验证。(验证将运行,但仍将提交)。如果我按下按钮type=“subm

我在表单上进行了一些客户端JavaScript验证。它工作得很好。但我想适应禁用JavaScript的用户。我的验证不是从表单的onsubmit属性运行的,而是绑定到表单中普通按钮的事件处理程序。因此,启动验证和提交的按钮实际上不是提交,而是type=“button”:


我的问题是,如果用户禁用了JS,则无法提交表单。我可以使用按钮
type=“submit”
,这将适用于禁用JS的用户,但它将*始终提交表单,并绕过启用JS的用户的验证。(验证将运行,但仍将提交)。如果我按下按钮
type=“submit”
,如果单击了提交事件,我是否可以阻止它?我使用的是JQuery,JQuery可以抑制提交吗?我希望我的验证能够处理它是否被提交。

您可以通过在
表单
元素中设置onsubmit处理程序来禁止提交,如果验证失败,则返回false


因此,如果验证成功,则返回true;如果验证失败,则返回false,而不是调用
thisForm.submit()

您可以通过执行以下操作来抑制提交单击:

$('input[type=submit]').bind('click', function(e) {
    e.preventDefault() // prevents the form from being submitted
    clickHandler(); // the custom submit action
});
或者,您可以按如下方式抑制实际表单提交:

$('form').bind('submit', function(e) {
    e.preventDefault();
    // etc
});

将按钮更改为普通的提交按钮,并将验证检查绑定到表单上的事件

$("form").submit(function() {
  if (!submitValidation()) {
    return false;
  }
});
从文档中:

submit
事件被发送到 当用户试图 提交一份表格。它只能附加 对元素进行修改。表格可以是 通过单击 显式
,或按Enter键 当某个表单元素具有焦点时

$('form').bind('submit', function(e) {
    e.preventDefault();
    // etc
});
$("form").submit(function() {
  if (!submitValidation()) {
    return false;
  }
});