在现代Web开发中使用输入字段的"name"属性是多余的吗?

Bit*_*ink 5 html forms input

我注意到很多网站都有包含输入字段的表单,即使它没有用于样式或脚本目的,也指定了"name"属性!

而且,根据HTML文档中关于表单的官方文档......

name = cdata [CI]此属性命名该元素,以便可以从样式表或脚本中引用它.注意.包含此属性是为了向后兼容.应用程序应使用id属性来标识元素.

所以,我的问题是:此属性是否应仅用于样式和脚本目的?

提前致谢!


编辑:特别是,可以避免使用具有"文本"类型的输入字段的此属性(当没有样式或脚本目的时)?


编辑2:所以,你几乎已经确认了我的想法:"name"属性将在进一步的HTML规范/标准中被弃用!!! ??? 它仍然只是"活着" for backwards compatibility...在某些情况下可以避免,但仍有一些情况(如单选按钮),这是必要的!

小智 5

我想你会发现几乎每个网站都会有name属性的输入.我不认为它会很快消失.

name属性指定input元素的名称.

name属性用于在表单数据提交到服务器之后识别表单数据,或者在客户端使用JavaScript引用表单数据.

注意:只有具有name属性的表单元素才会在提交表单时传递其值.

资源


OMG*_*ies 3

属性name是通过非 DOM Javascript 引用网页范围内的特定元素的表示法:

document.forms['your_form'].elements['aa']
Run Code Online (Sandbox Code Playgroud)

id需要将元素的属性设置为相同的值才能使以下功能正常工作:

document.getElementById('aa')
Run Code Online (Sandbox Code Playgroud)

我的理解是,当 Netscape 创建 Javascript 时,它使用了该name属性。然而,HTML 规范决定采用id,但name为了向后兼容而保留。IME,使用该name属性是 Internet Explorer 6 支持所必需的,因为 IE 中的 javascript 引擎不会读取该id属性 - 尽管name两者都已定义,但只能读取该属性。

...可以避免将此属性与“文本”类型的输入字段一起使用(当没有样式或脚本目的时)?

如果您没有将任何 JavaScript 附加到文本字段,是的 - 它们将是不必要的。