我在这个网站上看到过类似的问题,但我不能让它工作。我试图通过Javascript检测输入框中的重复条目-但我希望在输入重复条目时中断循环。我让这部分工作了,但循环继续运行,它创建了一个用户无法摆脱的无限循环。我试图打破循环,让用户重新输入一个不同的值。
function checkDuplicates() {
var numFlds = <cfoutput>#form.UnitCount#</cfoutput>;
for (var x=1; x<=numFlds; x++) {
for (var y=x+1; y<=numFlds; y++) {
if (document.getElementById('SN'+y).value !== '')
if (document.getElementById('SN'+x).value == document.getElementById('SN'+y).value) {
alert('Duplicate Serial Number Entered!');
break;
}
}
}
}发布于 2017-09-19 22:28:13
您可以声明一个bool duplicate found并检查它的每个循环。在找到duplicate = true时声明该one。
for(x=0; x < Num && duplicate ; x++)
当你找到一个,循环就会停止,下一个也会停止,下一个也会停止。你就出局了。
如果你想记住你离开的地方,你可以保存相应的x来保存你离开的地方。
lg!
发布于 2017-09-19 22:37:05
有一种方法可以跳到标签引用。在下一个示例中,您有三个标签(label1、label2、label3)。如果你自动使用'break label3‘,你的代码会自动转到末尾(或者你想要的标签)
var numFlds = <cfoutput>#form.UnitCount#</cfoutput>;
label1:
for (var x=1; x<=numFlds; x++) {
label2:
for (var y=x+1; y<=numFlds; y++) {
if (document.getElementById('SN'+y).value !== '') {
if (document.getElementById('SN'+x).value == document.getElementById('SN'+y).value) {
alert('Duplicate Serial Number Entered!');
break label3;
}
}
}
}
label3:
console.log('Finish!');https://stackoverflow.com/questions/46302939
复制相似问题