如何拦截提交按钮点击

How to intercept a submit button click?

本文关键字:按钮 提交 何拦截      更新时间:2023-09-26

我有一个表单和一个提交按钮。

我想对其中一些字段进行快速检查(如果其中一个字段没有填写,则将其他字段留空)。

我宁愿不更改按钮的HTML,我只想在jQuery中这样做,而不向按钮添加任何"onclick"属性。

HTML:

<input class="cssButton button_in_cart" type="submit" value="Add to Bag" style="width: 80px;">

jQuery(已尝试):

$("input.button_in_cart").mousedown(function () {
    alert("clicked");   
});

这不起作用,它仍然在不显示警报的情况下提交表单。谢谢

不要使用任何形式的点击事件进行表单处理,因为键盘提交会绕过您的代码!

请改用submit事件处理程序,并返回false(或e.preventDefault())以停止提交过程。

例如

$('#myform').submit(function(e){
   // Do your validation here
   // ...
   // Then conditionally stop the submit from firing
   if (someValidateFails){
      e.preventDefault()
   }
});

您可以使用函数的返回值来阻止表单提交

<form name="myForm" onsubmit="return validateMyForm();"> 

功能类似

<script type="text/javascript">
function validateMyForm()
{
  if(check if your conditions are not satisfying)
  { 
    alert("validation failed false");
    returnToPreviousPage();
    return false;
  }
  alert("validations passed");
  return true;
}
</script>

在Chrome 27.0.1453.116 m的情况下,如果以上代码不起作用,请将事件处理程序参数的returnValue字段设置为false以使其起作用。

将类型设为"按钮"第一个

<input class="cssButton button_in_cart" type="submit" value="Add to Bag" style="width: 80px;">

$("input.button_in_cart").mousedown(function (e) {
   e.preventDefault();
    alert("clicked");   
    // do the form submit
   document.forms[0].submit();
});

"停止"事件主要有两种方法。第一个到return false;,另一个到e.preventDefault();。这两种方式的区别在于,使用e.preventDefault();将阻止整个事件的进行,并且不会传播DOM。

我会使用以下内容:

$("input.button_in_cart").mousedown(function () {
    alert("clicked");   
    return false;
})