[英]JS: looping function through checkbox array not counting properly
我想验证一系列复选框上的输入。 必须至少选中一个复选框,否则用户将收到警报以选择一个复选框。 但是,除非选中所有复选框,否则将显示警报。
我意识到问题在于如何设置我的for循环参数,但是我不知道如何解决它。
for(var i=0;i<7;i++){
if( !checkboxes[i].checked ){
alert( 'You need to select at least one day!');
checkboxes[i].focus();
return false;
}
}
如果选中了至少一项,则可以使用标志来设置验证状态并将其设置为true。
然后,在循环之后检查是否设置了该标志,否则未选中任何复选框。
var valid = false;
for (var i = 0; i < checkboxes.length; i++) {
if (checkboxes[i].checked) {
valid = true;
break;
}
}
if (!valid) {
alert('You need to select at least one day!');
checkboxes[0].focus();
return false;
}
var clicked = false;
$(".CheckBoxClass").each(function () {
if($(this).checked ) clicked = true;
}
if(clicked)
return true;
else ...
您想做与编码相反的事情。 如果未选中当前复选框,即,如果未选中ANY复选框,则当前代码将闪烁警报。 您可以将其修改为如下所示:
var isChecked = false;
for(var i=0;i<7;i++){
if( checkboxes[i].checked ){
isChecked = true;
}
}
if ( !isChecked ) {
alert( 'You need to select at least one day!');
checkboxes[0].focus();
return false;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.