好吧,我正试图让他制作一些字段,如果它们中的任何一个是相同的,那就是信息,虽然我的信息不停地给予直接,但我怎么能让它停止给予很多提醒?
function sendAll(){
for (i = 1;i <=10;i ++) {
for (o = 1;o <=10;o ++) {
if(document.getElementById("table" + i).value==document.getElementById("table" + o).value){
alert("Some field is equal, check again.");
break;
return false;
}
}
}
}
答案 0 :(得分:2)
你的break
只是停止了最内循环,但允许外循环继续。要彻底摆脱这个功能,只需使用return
:
function sendAll(){
for (i = 1;i <=10;i ++) {
for (o = 1;o <=10;o ++) {
if(document.getElementById("table" + i).value==document.getElementById("table" + o).value){
alert("Some field is equal, check again.");
return false;
}
}
}
return true; // suggested by Mike W
}
答案 1 :(得分:2)
您不需要break
语句,只需将其删除即可。 return
声明将完成其余的
使用
function sendAll() {
for (i = 1; i <= 10; i++) {
for (o = 1; o <= 10; o++) {
if (document.getElementById("table" + i).value == document.getElementById("table" + o).value) {
alert("Some field is equal, check again.");
//break;
return false;
}
}
}
//If you are using for validation purpose return true
// as default
return true;
}
答案 2 :(得分:0)
尝试这样的事情
function sendAll(){
var bEqual = false;
for (i = 1;i <=10;i ++) {
for (o = 1;o <=10;o ++) {
if(document.getElementById("table" + i).value==document.getElementById("table" + o).value){
bEqual = true;
}
}
}
if (bEqual) {
alert("Some field is equal, check again.");
}
return bEqual;
}
答案 3 :(得分:0)
也许你可以这样做:
function sendAll(){
if (!fieldsOk()) {
alert('some message');
}
}
function fieldsOk() {
for (i = 1;i <=10;i ++) {
for (o = 1;o <=10;o ++) {
if(document.getElementById("table" + i).value==document.getElementById("table" + o).value){
return false;
}
}
}
return true;
}