Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 循环没有结束_Javascript - Fatal编程技术网

Javascript 循环没有结束

Javascript 循环没有结束,javascript,Javascript,只是想找出我“奇怪循环”的错误。我在JSLint中收到这个错误,循环只是不断重复,而它需要停止 <script type="text/javascript"> function checkForm(theForm) { "use strict"; /*global alert*/ var formValid = true, elementCount = 0; while (elementCount <= theForm.lengt

只是想找出我“奇怪循环”的错误。我在JSLint中收到这个错误,循环只是不断重复,而它需要停止

<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也应该说些什么…它为我发现了另一个错误。注意,在检查值时,我删除了括号。(错误-值不是函数)