我有一个表单和一个提交按钮。
我想快速检查一些字段(如果没有填写,则将其他字段留空)。
我宁愿不改变按钮的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");
});
这不起作用,它仍然提交表单而不显示警报。感谢。
答案 0 :(得分:13)
不要使用任何形式的点击事件进行表单处理,因为键盘提交会绕过您的代码!
使用submit
事件处理程序,并返回false(或e.preventDefault()
)以停止提交程序。
e.g。
$('#myform').submit(function(e){
// Do your validation here
// ...
// Then conditionally stop the submit from firing
if (someValidateFails){
e.preventDefault()
}
});
答案 1 :(得分:0)
首先将类型设为'按钮'
<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();
});
答案 2 :(得分:0)
您可以使用函数的返回值来阻止表单提交
<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以使其生效。
答案 3 :(得分:0)
“停止”活动有两种主要方式。
第一个是return false;
,另一个是e.preventDefault();
。
这两种方式的不同之处在于使用e.preventDefault();
将阻止整个事件继续进行,并且不会传播DOM。
我会使用以下内容:
$("input.button_in_cart").mousedown(function () {
alert("clicked");
return false;
})