我已经通过jQuery对我的表单应用了验证,在该表单中,我有四个复选框,用户必须选中一个复选框才能提交表单。
这是代码:
for (var i = 0; i < c.length; i++) {
if (c[i].type == 'checkbox' && c[i].checked == true) {
return true;
} else {
error += alert ("You must select atleast one previous benefit provided");
return false
}
}
问题是这使用返回键,如果我删除返回键,它会发出 4 次警报(相同数量的复选框(,如果我让它在那里,那么检查字段和给出错误的 if 语句不起作用
if(error != "") {
$("#error").html("<strong>Some fields are invalid!</strong>") || error;
return false;
} else {
return true;
}
如果我在复选框验证中删除退货,那么一切正常,但它会发出四次警报,如果不删除它,那么它不会出错,它会提交表单。
alert()
不返回任何内容,因此您的error
逻辑没有意义。
创建一组选中的复选框,并确保它具有长度。
var hasChecked = $('#myForm :checkbox:checked').length;
if(!hasChecked){
return false
error = true;
}