最佳实践:访问单选按钮组

时间:2010-03-13 03:44:24

标签: javascript forms dom getelementsbyname

寻找最佳,符合标准,跨浏览器兼容,转发兼容的方式来访问DOM中的一组单选按钮(这与我最近的其他帖子密切相关......),不使用任何外部库。

<input type="radio" value="1" name="myRadios" />One<br />
<input type="radio" value="2" name="myRadios" />Two<br />

我已经阅读了关于getElementsByName()的冲突信息,这似乎是正确的方法,但我不清楚这是否是符合标准的前向兼容解决方案。也许有更好的方法?

2 个答案:

答案 0 :(得分:2)

我对这个解决方案并不满意,但我最终在Gecko DOM文档中对此进行了跟踪。

name获取或设置DOM对象的name属性,它仅适用于以下元素:anchor,applet,form,frame,iframe,image,input,map,meta,object,option,param,选择和textarea。

HTMLElement.name = string;
var elName = HTMLElement.name;

var fControl = HTMLFormElement.elementName;
var controlCollection = HTMLFormElement.elements.elementName;

更多信息:https://developer.mozilla.org/en/DOM/element.name

所以我认为这是符合标准的处理方式(尽管最佳实践可能并不存在......)

document.getElementById('myForm').elements.myRadios

答案 1 :(得分:0)

我认为最好的事情是:

form.elements.myRadios

vs

form.myRadios

原因是根据最新的specelements.someName将返回包含RadioNodeList属性的value对象(如果多个元素具有相同名称)指示已检查项目的值。

另一方面,

form.myradios将返回NodeList的对象,该对象只是一个有序的项集合,并且没有任何value属性。

在收音机和复选框中查找选中的项目传统上是一项非常痛苦的练习。

但是,我不确定如何访问所有选中元素的复选框。在规范中找不到。希望不缺。