繁体   English   中英

遍历javascript函数

[英]Looping through javascript function

我试图循环我的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
});

但这仅适用于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;
}

也许这个吗?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM