我注意到很多网站都有包含输入字段的表单,即使它没有用于样式或脚本目的,也指定了"name"属性!
而且,根据HTML文档中关于表单的官方文档......
name = cdata [CI]此属性命名该元素,以便可以从样式表或脚本中引用它.注意.包含此属性是为了向后兼容.应用程序应使用id属性来标识元素.
所以,我的问题是:此属性是否应仅用于样式和脚本目的?
提前致谢!
编辑:特别是,可以避免使用具有"文本"类型的输入字段的此属性(当没有样式或脚本目的时)?
编辑2:所以,你几乎已经确认了我的想法:"name"属性将在进一步的HTML规范/标准中被弃用!!! ??? 它仍然只是"活着" for backwards compatibility...在某些情况下可以避免,但仍有一些情况(如单选按钮),这是必要的!
属性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 附加到文本字段,是的 - 它们将是不必要的。