我正试图通过我的函数在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语句,而不会遍历它。
答案 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;
}
}