首页 文章

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

提问于
浏览
0

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

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

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

1 回答

  • 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选择器语法)元素 .

    参考文献:

相关问题