我想检查在单击提交按钮后是否至少有一个复选框在表单中检查,如果不是,用户应该收到消息,表单应该不提交,所以我写了这段代码: / p>
jQuery(document).ready(function ($) {
$('#price_quote_create_invoice').click(function () {
$('.price-quotes-table input[type="checkbox"]').each(function () {
if ( $(this).is(':checked') ){
$('#post').submit();
return false;
} else {
alert("You didn't chose any checkbox!");
return false;
}
}) ;
});
});
但是,在警告框中按“确定”后,表单会提交。
知道为什么会这样吗?
答案 0 :(得分:1)
您的代码几乎是正确的。
您在点击事件中返回false,但您真正想要做的是停止提交事件。
像这样改变。
$('#yourFormId').submit(function(){
if (!$(this).find('input[type="checkbox"]:checked').length) {
alert("You didn't chose any checkbox!");
return false;
}
});
答案 1 :(得分:0)
alert('You didn't chose any checkbox!');
警报中还有一个逗号..
答案 2 :(得分:0)
您可以使用event.preventDefault()
执行此操作。 event
是click
函数的第一个参数。 Reference