黑马程序员技术交流社区
标题: HTML中的id和name的使用有何区别? [打印本页]
作者: 李后量 时间: 2012-9-17 16:04
标题: HTML中的id和name的使用有何区别?
本帖最后由 李后量 于 2012-9-25 21:16 编辑
如题,HTML中对于radio的话,id和name可以很好的区别使用,对于其他的控件呢?如text,它的id和name使用有什么区别?在做ASP.NET一般程序处理的时候就因为把name写成了id而致使程序无法正确运行,症状参见我的求助帖子http://bbs.itheima.com/thread-25870-1-1.html,谁来讲讲它们的区别啊
作者: 林洲 时间: 2012-9-17 16:11
可以这么理解:id是给前台aspx页面,js代码用的;
name:提交到服务器的表单元素,一定要具有name属性;
所有的表单都是提交以name为key,以value为值的内容,其它的属性都不会提交到服务器。
作者: 许庭洲 时间: 2012-9-17 16:28
id 与 name的作用,作为标签的标识符,基本上是一样的,name是老方法,id 是在name基础上发明的。
作者: 侍小波 时间: 2012-9-25 18:38
name原来是为了标识之用,但是现在根据规范,都建议用id来标识元素。
以下只能用name:
1. 表单(form)的控件名,提交的数据都用控件的name而不是id来控制。因为有许多name会同时对应多个控件,比如checkbox和radio,而id必须是全文档中唯一的。此外浏览器会根据name来设定发送到服务器的request。因此如果用id,服务器是无法得到数据的。
2. frame和window的名字,用于在其他frame或window指定target。
以下只能用id:
1. label与form控件的关联,
<label for="MyInput">My Input</label>
<input id="MyInput" type="text">
for属性指定与label关联的元素的id,不可用name替代。
2. CSS的元素选择机制,以#MyId的方式指定应用样式的元素,不能用name替代。
3. 脚本中获得对象:
IE支持在脚本中直接以id(而不是name)引用该id标识的对象。例如上面的input,要在脚本中获得输入的内容,可以直接以MyInput.value来获得。如果用DOM的话,则用document.getElementById("MyInput").value,如果要用name的话,通常先得到包含控件的form,例如document.forms[0],然后从form再引用name,注意这样得到的是经过计算后将发送给服务器的值。
name与id的其他区别是:
id要符合标识的要求,比如大小写敏感,最好不要包含下划线(因为不兼容CSS)。而name基本上没有什么要求,甚至可以用数字
作者: 郎乐乐 时间: 2012-9-25 19:56
id用到前台来设计的,如果是html页面 JS能用到,asp界面给前台用。
html页面的name是向服务器发送表单时的到的数据。
是以key,value形式在response,过程中传旨的
作者: liuyj 时间: 2012-9-25 20:17
这个你可以理解为id 是在客户端运行的,name是运行在服务器端得。
所以id一般是 js 用的,name是服务器端用的 像asp.net的对象来调用的!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |