通过javascript函数循环

通过javascript函数循环,javascript,Javascript,我试图在函数的while循环中循环if语句。但它只会命中第一个if语句并停止循环 样本: while(No.length == 0 || Name.length == 0 || Tel.length == 0 || Date.length == 0 || Email.length == 0) { alert("Don't leave blank!"); if (No.length == 0) { document.getElementById('

我试图在函数的while循环中循环if语句。但它只会命中第一个if语句并停止循环

样本:

while(No.length == 0 || Name.length == 0 || Tel.length == 0 
      || Date.length == 0 || Email.length == 0) {

    alert("Don't leave blank!");

    if (No.length == 0) {
        document.getElementById('Nos').style.visibility = 'visible';
        return false;   
    }

    if(Name.length == 0) {
        document.getElementById('Name').style.visibility = 'visible';
        return false;   
    }
    //continues same if statement for rest of the elements variables.
}

它将只转到第一个if语句,不会循环执行它。

您是从循环内部返回的;这打破了循环。如果要继续下一轮循环,请改用
continue
。如果要中断循环,但不想从整个函数返回,请使用
break

现在,如果您使用的是jQuery循环,因为它实际上只是一个函数,您可以使用return:

$.each([1,2,3,4], function(index, x) {
    if (x < 4) return true; // equivalent to continue
    if (x == 4) return false; // equivalent to break
});
$。每个([1,2,3,4])函数(索引,x){
如果(x<4)返回true;//相当于继续
if(x==4)返回false;//相当于break
});

但这只适用于jQuery循环,而不是Javascript标准循环。

您是从循环内部返回的;这打破了循环。如果要继续下一轮循环,请改用
continue
。如果要中断循环,但不想从整个函数返回,请使用
break

现在,如果您使用的是jQuery循环,因为它实际上只是一个函数,您可以使用return:

$.each([1,2,3,4], function(index, x) {
    if (x < 4) return true; // equivalent to continue
    if (x == 4) return false; // equivalent to break
});
$。每个([1,2,3,4])函数(索引,x){
如果(x<4)返回true;//相当于继续
if(x==4)返回false;//相当于break
});

但这仅适用于jQuery循环,而不是Javascript标准循环。

我看到的第一个错误是您应该使用“\”来逃避警报,例如:

alert('Don\'t leave blank!');
如果您编写以下内容,则循环将继续:

while(No.length == 0 || Name.length == 0 || Tel.length == 0 || Date.length == 0 || Email.length == 0) {

    if (No.length == 0) {
        document.getElementById('Nos').style.visibility = 'visible';
    }
    if(Name.length == 0) {
        document.getElementById('Name').style.visibility = 'visible';
    }
    return true;
}
也可以尝试:

while(No.length == 0 && Name.length == 0 && Tel.length == 0 && Date.length == 0 && Email.length == 0) {

     document.getElementById('Nos').style.visibility = 'visible';      
     document.getElementById('Name').style.visibility = 'visible';
     continue;
}

我看到的第一个错误是您应该使用“\”来转义警报,例如:

alert('Don\'t leave blank!');
如果您编写以下内容,则循环将继续:

while(No.length == 0 || Name.length == 0 || Tel.length == 0 || Date.length == 0 || Email.length == 0) {

    if (No.length == 0) {
        document.getElementById('Nos').style.visibility = 'visible';
    }
    if(Name.length == 0) {
        document.getElementById('Name').style.visibility = 'visible';
    }
    return true;
}
也可以尝试:

while(No.length == 0 && Name.length == 0 && Tel.length == 0 && Date.length == 0 && Email.length == 0) {

     document.getElementById('Nos').style.visibility = 'visible';      
     document.getElementById('Name').style.visibility = 'visible';
     continue;
}
也许是这个

功能测试所有字段(){
var No=document.getElementById('No');
var Nos=document.getElementById('Nos');
var Name=document.getElementById('Name');
// ...
Nos.style.visibility=(No.value.length==0)?“可见”:“隐藏”;
Names.style.visibility=(Name.value.length==0)?“可见”:“隐藏”;
//...
//对其余元素变量继续相同的if语句。
如果(No.value.length>0&&Name.value.length>0&&Tel.value.length>0&&Date.value.length>0&&Email.value.length>0){
返回true;
}
否则{
警惕(“不要留白!”);
返回false;
}
}
也许是这个

功能测试所有字段(){
var No=document.getElementById('No');
var Nos=document.getElementById('Nos');
var Name=document.getElementById('Name');
// ...
Nos.style.visibility=(No.value.length==0)?“可见”:“隐藏”;
Names.style.visibility=(Name.value.length==0)?“可见”:“隐藏”;
//...
//对其余元素变量继续相同的if语句。
如果(No.value.length>0&&Name.value.length>0&&Tel.value.length>0&&Date.value.length>0&&Email.value.length>0){
返回true;
}
否则{
警惕(“不要留白!”);
返回false;
}
}

表示返回false;继续
returntrue
相当于jQuery循环中的
continue
;不在普通Javascript中。请改用
continue
如果(No.length==0){
continue/*继续循环的下一次迭代*/;
}
您好,您的语句可以工作,但它永远不会停止。错误消息将保持appearingOk循环101次:-)当您在循环中使用
continue
(或不执行任何操作)时,它将继续循环的下一次迭代。但是,如果在循环中使用
break
return
,它将结束循环。如果使用了
break
,它将转到循环后的下一行,如果使用
return
它将返回到调用函数的人。我不知道你具体想用循环实现什么,但它的长短是当你想循环继续时你想
继续
,当你想循环结束时你想
中断
;继续
returntrue
相当于jQuery循环中的
continue
;不在普通Javascript中。请改用
continue
如果(No.length==0){
continue/*继续循环的下一次迭代*/;
}
您好,您的语句可以工作,但它永远不会停止。错误消息将保持appearingOk循环101次:-)当您在循环中使用
continue
(或不执行任何操作)时,它将继续循环的下一次迭代。但是,如果在循环中使用
break
return
,它将结束循环。如果使用了
break
,它将转到循环后的下一行,如果使用
return
它将返回到调用函数的人。我不知道你具体想用循环来完成什么,但它的长短是当你想继续循环时你想
继续
,当你想结束循环时你想
中断
。你的版本仍然从循环内部返回,所以它会有同样的问题,只迭代一次(然后返回)。它不会循环。只会点击第一个IF语句。@stano,‘No’是用户输入值。'Nos’是错误图像。哦,是的,谢谢解释。我相信您知道如何使其完全正常运行。祝您好运!:-)您的版本仍然会从循环内部返回,因此它将遇到只迭代一次的问题(然后返回)。它不会循环。只会点击第一个IF语句。@stano,“No”是用户输入值。“No”是错误图像。噢,是的,谢谢解释。我相信您知道如何使它完全正常工作。