Javascript 循环没有结束
只是想找出我“奇怪循环”的错误。我在JSLint中收到这个错误,循环只是不断重复,而它需要停止Javascript 循环没有结束,javascript,Javascript,只是想找出我“奇怪循环”的错误。我在JSLint中收到这个错误,循环只是不断重复,而它需要停止 <script type="text/javascript"> function checkForm(theForm) { "use strict"; /*global alert*/ var formValid = true, elementCount = 0; while (elementCount <= theForm.lengt
<script type="text/javascript">
function checkForm(theForm) {
"use strict";
/*global alert*/
var formValid = true,
elementCount = 0;
while (elementCount <= theForm.length) {
if (theForm.elements[elementCount].type === "text") {
if (theForm.elements[elementCount].value() === "") {
alert("Please complete all the form elements");
theForm.elements[elementCount].focus();
formValid = false;
break;
}
}
return formValid;
}
} </script>
函数检查表(theForm){
“严格使用”;
/*全球警报*/
var formValid=true,
元素计数=0;
而(elementCount您没有在循环中增加elementCount。请尝试以下操作:
<script type="text/javascript">
function checkForm(theForm) {
"use strict";
/*global alert*/
var formValid = true,
elementCount = 0;
while (elementCount < theForm.length) {
if (theForm.elements[elementCount].type === "text") {
if (theForm.elements[elementCount].value === "") {
alert("Please complete all the form elements");
theForm.elements[elementCount].focus();
formValid = false;
break;
}
}
elementCount++;
}
return formValid;
}
</script>
函数检查表(theForm){
“严格使用”;
/*全球警报*/
var formValid=真,
元素计数=0;
while(元素计数<形式长度){
if(form.elements[elementCount].type==“text”){
if(form.elements[elementCount].value==“”){
警告(“请填写所有表单元素”);
form.elements[elementCount].focus();
formValid=false;
打破
}
}
elementCount++;
}
返回表格有效;
}
请注意,我还将return语句移到了循环之外。正如其他人所说,您需要增加该计数器。但是,使用a可能更清楚,它通常如下所示:
for (var elementCount = 0; elementCount <= theForm.length; elementCount++) {
// do stuff
}
对于(var elementCount=0;elementCount)为了方便回答者或其他有类似问题的人,请添加更具体的问题陈述-“它不起作用”可以假设,但它如何不起作用?什么错误消息或错误行为是特征?表单的值到底是多少?您在哪里更改元素计数的值?
?如果有返回formValid;
语句肯定会停止循环,循环如何永远运行?应该有最多一次迭代。你的循环中没有增加elementCount…所以它总是一次又一次地检查同一个元素…elementCount=elementCount+1
@Ragdata所以你指的是第6行,它应该被更改,对吗?不…只要打个勾,我就把它作为一个测试的结果输入你的答案中这段代码,我现在在你添加的新行中抛出错误“unexpected++”。仅供参考,我正在使用括号。哦…检查编辑(忘记我使用的是哪种语言)@Ragdata我认为你原来的增量是正确的-增量操作符(++
)是完全有效的JavaScript。我想知道为什么它会抛出那个错误…即使进行了编辑,这个错误仍然是通过JSLint抛出的。我在这里遗漏了什么?关于使用jsfiddle也应该说些什么…它为我发现了另一个错误。注意,在检查值时,我删除了括号。(错误-值不是函数)