大多数表单javascript使用ID而不是NAME的原因

时间:2013-04-13 01:42:28

标签: javascript html

有人可以查看使用 NAME 与表单元素进行交互的历史/原因已经失效并且document.getElementById已经接管了。

历史上究竟发生了什么促使这种变化和转变。

最后,是否有转变,或者仍然是推荐的做事方式?

Document.getElementById vs  document.form.name

根据一些论坛讨论,所有浏览器都无法识别document.form.name。是这样的吗?参见:

"I've been told in the past that you should not use "document.form_name.element_name" compared to "document.getElementById()", as the first is not recognized by all browsers. "

2 个答案:

答案 0 :(得分:3)

属性NAME不一定是唯一的。例如,单选按钮按名称分组。调用getElementByName将返回集合中的所有按钮。 ID意味着独一无二。所以,为了回答你的问题,每个人都有自己的位置。

答案 1 :(得分:1)

name访问时,

document.forms[name].element[name]是普遍接受的。 IE 5.5,Firefox 0.8,Opera 5,Navigator 4等都支持它。它已经过时了,因为jQuery的简单性让人们忘记了它。

但是如果input元素与form对象上的属性具有相同的名称,那么访问它可能不起作用:例如,

<form name="hi" action="/go"><input name="action" value="world">

document.hi.action应该给你“/ go”或“[输入值=世界]”吗?