所以我正在尝试编写javaScript来检查我的表单。我有六个无线电类型输入,其中一个有要检查。无线电按钮被放置在两排三个无线电输入中。一行的名称为'inschrijving1',另一行的另外三行的名称为'inschrijving2'。这是我用来检查表单的代码,但是使用这段代码它总是返回false,它总是发出警报。
if(!document.getElementsByName("inschrijving1").checked || !document.getElementsByName("inschrijving2").checked)
{
alert("Selecteer een dagdeel voor de inschrijving");
return false;
}
谁能明白为什么会这样?如果没有检查六个无线电输入,我只需要它返回false并发出警报。
答案 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选择器语法)元素。
参考文献: