我正在尝试验证是否已选中所有项目(单选按钮)。以下代码有效,但只要我点击警报窗口,它就会再次弹出。使用event.stopPropagation()
不会改变任何内容。它不是在等待用户检查剩余的项目。
$(document).ready(function(){
$(document).on('submit','#formular',function(event){
$("input:radio").each(function() {
var val = $('input:radio[name=' + this.name + ']:checked').val();
if (val === undefined) {
alert("Not every item answered");
event.preventDefault();
}
});
});
});
答案 0 :(得分:1)
您不使用preventDefault
退出循环,通常您会使用break
或continue
,但在jQuery $.each
上您必须使用return true
继续return false
相当于break
。
$(document).ready(function(){
$(document).on('submit','#formular',function(event){
$("input:radio").each(function() {
var val = $('input:radio[name=' + this.name + ']:checked').val();
if (val === undefined) {
alert("Not every item answered");
return false;
}
});
// When invalid formular:
return false;
// When it's valid:
return true;
});
});
另请参阅此问题:jquery validation: prevent form submit
请参阅:
How to break out of jQuery each Loop