为什么我的for循环仅在第一个元素上起作用?

时间:2019-01-26 16:08:22

标签: javascript

我偶然发现了一个我不知道如何解决的问题。我希望能够检查单选按钮被选中的时间。如果五个按钮之一被选中,它应该给出反馈。用我的代码以某种方式,当我检查第一个单选按钮时,它可以工作。但是,如果我检查第二或第三...它给了我警报消息:请给一个评价。因此,这意味着要么函数radioChecker中的for循环未按预期运行,要么我不知道。

No EJB receiver available for handling [appName:signserver, moduleName:SignServer-ejb, distinctName:]

}

2 个答案:

答案 0 :(得分:2)

这是因为循环中有一个return true。在第一个循环上返回true的那一刻,它将中断循环。

答案 1 :(得分:1)

const radioChecker = () => {
    let radios = document.querySelector(".stars").querySelectorAll("input");
    for (let i = 0; i <radios.length; i++) {
        if (radios[i].checked) {
            console.log("yes");
            return true;
        }
    }
    return false;
}

说明: 因此,for循环检查所有radios。如果选中了任何广播,它将立即return true
运行完整循环后,如果未找到任何无线电,将进行return false