我有一个JavaScript函数,它将一些input标记收集到一个数组中,然后决定是否已经选择了其中一个:
function validateAnswerSelected () {
var formValid = false;
var groupedInput = document.getElementsByName("choice");
var i;
// while (!formValid && i < questions[questionNumber].choices.length) {
// if (groupedInput[i].checked) {
// formValid = true;
// }
// i++;
// }
// for (i = 0; questions[questionNumber].choices.length; i++) {
// if (groupedInput[i].checked) {
// formValid = true;
// }
// }
if (!formValid) {
alert("select an answer");
}
}
Run Code Online (Sandbox Code Playgroud)
当我取消注释while循环时,该功能正常工作.但是当我取消注释时,for循环groupedInput变得不确定.
这有什么区别?
编辑:当我取消注释时,while我会初始化i变量.我在问题中犯的错误只是一个错字.
错字:
for (i = 0; questions[questionNumber].choices.length; i++) {
Run Code Online (Sandbox Code Playgroud)
应该:
for (i = 0; i < questions[questionNumber].choices.length; i++) {
// ^ You forgot the `i <`
Run Code Online (Sandbox Code Playgroud)