首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >突破Javascript循环

突破Javascript循环
EN

Stack Overflow用户
提问于 2017-09-19 22:21:19
回答 2查看 83关注 0票数 1

我在这个网站上看到过类似的问题,但我不能让它工作。我试图通过Javascript检测输入框中的重复条目-但我希望在输入重复条目时中断循环。我让这部分工作了,但循环继续运行,它创建了一个用户无法摆脱的无限循环。我试图打破循环,让用户重新输入一个不同的值。

代码语言: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;
                            }
                        }
                    }
                }
EN

回答 2

Stack Overflow用户

发布于 2017-09-19 22:28:13

您可以声明一个bool duplicate found并检查它的每个循环。在找到duplicate = true时声明该one。

for(x=0; x < Num && duplicate ; x++)

当你找到一个,循环就会停止,下一个也会停止,下一个也会停止。你就出局了。

如果你想记住你离开的地方,你可以保存相应的x来保存你离开的地方。

lg!

票数 2
EN

Stack Overflow用户

发布于 2017-09-19 22:37:05

有一种方法可以跳到标签引用。在下一个示例中,您有三个标签(label1、label2、label3)。如果你自动使用'break label3‘,你的代码会自动转到末尾(或者你想要的标签)

代码语言:javascript
复制
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!');
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46302939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档