【问题标题】:My JavaScript does not check my form's radio-inputs correctly我的 JavaScript 没有正确检查表单的无线电输入
【发布时间】:2013-10-21 21:47:35
【问题描述】:

所以我正在尝试编写 javaScript 来检查我的表单。我有六个无线电类型的输入,其中一个 必须 进行检查。单选按钮放置在两排三个单选输入中。一行的名称为“inschrijving1”,另一行的其他三个输入的名称分别为“inschrijving2”。这是我用来检查表单的代码,但是使用此代码时,它总是返回 false 并且总是给出警报。

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

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

【问题讨论】:

  • 我怀疑,getElementsByName 返回一个数组,因为它是复数形式。

标签: javascript html radio-button alert


【解决方案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() 仅返回满足所提供选择器的 first 匹配(使用 CSS 选择器语法)元素。

参考资料:

【讨论】:

  • 谢谢!我看到我在这里做错了什么。但是现在整个表单检查脚本不再起作用(因为这只是我所做的所有检查中的一小部分)..整个表单正在检查验证,即使所有内容都没有检查..
  • 好吧,鉴于缺乏任何其他信息,我不确定您希望我如何提供帮助?
  • 很抱歉我不好发表评论。我现在只是尝试自己弄清楚,感谢您到目前为止的帮助! :)
  • 我很乐意提供帮助(问题不在于你不够“好”(你很有礼貌),只是我不能帮助,除非我能看到更多正在发生的事情)如果你提供更多代码,但我怀疑这个问题可能值得一个单独的问题(因为问题的这个特定方面似乎已经得到充分解决)。 :)
猜你喜欢
  • 2021-09-23
  • 2013-08-16
  • 1970-01-01
  • 2012-03-24
  • 2013-12-03
  • 2014-02-21
  • 1970-01-01
  • 2013-04-06
  • 1970-01-01
相关资源
最近更新 更多