我想验证一系列复选框上的输入。必须至少选中一个复选框,否则用户将收到选择一个警报。但是,除非选中所有复选框,否则将显示警报。
我意识到问题在于如何设置我的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;
}