通过javascript函数循环

时间:2012-07-18 16:33:22

标签: javascript

我正试图通过我的函数在if循环中循环我的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语句,而不会遍历它。

3 个答案:

答案 0 :(得分:2)

你是从循环内部返回的;打破了循环。如果您想继续循环的下一轮,请改用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
});

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

答案 1 :(得分:1)

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

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;
}

答案 2 :(得分:0)

也许这个?

function test_all_fields() {
    var No = document.getElementById('No');
    var Nos = document.getElementById('Nos');
    var Name = document.getElementById('Name');
    // ...
    Nos.style.visibility = (No.value.length==0) ? 'visible':'hidden';
    Names.style.visibility = (Name.value.length==0) ? 'visible':'hidden';
    //...
    //continues same if statement for rest of the elements variables.
    if (No.value.length >0 && Name.value.length >0 && Tel.value.length>0 && Date.value.length >0 && Email.value.length>0) {
        return true;
    }
    else {
        alert("Don\'t leave blank!");
        return false;
    }
}