我的JavaScript没有正确检查我的表单的无线电输入

时间:2013-10-21 13:45:39

标签: javascript html radio-button alert

所以我正在尝试编写javaScript来检查我的表单。我有六个无线电类型输入,其中一个要检查。无线电按钮被放置在两排三个无线电输入中。一行的名称为'inschrijving1',另一行的另外三行的名称为'inschrijving2'。这是我用来检查表单的代码,但是使用这段代码它总是返回false,它总是发出警报。

if(!document.getElementsByName("inschrijving1").checked || !document.getElementsByName("inschrijving2").checked)
{
     alert("Selecteer een dagdeel voor de inschrijving");
     return false;
}

谁能明白为什么会这样?如果没有检查六个无线电输入,我只需要它返回false并发出警报。

1 个答案:

答案 0 :(得分:1)

因为getElementsByName()返回元素的集合/ nodeList,它没有集合checked属性。为此,您需要显式迭代返回的每个元素并单独检查它们。

假设您每个name只有一个元素:

if(!document.getElementsByName("inschrijving1")[0].checked || !document.getElementsByName("inschrijving2")[0].checked)

或者,在兼容的浏览器中,每个浏览器中包含多个:

if(!document.querySelector("name=['inschrijving1']:checked") || !document.getElementsByName("name=['inschrijving2']:checked"))

document.querySelector()仅返回满足所提供选择器的第一个匹配(使用CSS选择器语法)元素。

参考文献: