黑马程序员技术交流社区
标题: 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-17 16:39
id的主要用途:
在客户端页面作为对象的唯一表示,同一个页面中不允许出现多个相同的id.可以使用javascript的document.getElementById('id')来获取对象.
name的具体用途有:
用途1:
作为可与服务器交互数据的HTML元素的服务器端的标示,比如input、select、textarea、和button等。我们可以在服务器端根据其name通过Request["name"]取得元素提交的值。
用途2:
HTML元素input type='radio'分组,我们知道radio button控件在同一个分组类,check操作是mutex的,同一时间只能选中一个radio,这个分组就是根据相同的name属性来实现的。
用途3:
建立页面中的锚点,我们知道<a href="url">link</a>是获得一个页面超级链接,如果不用href属性,而改用name,如:<a name="PageBottom"></a>,我们就获得了一个页面锚点。
用途4:
作为对象的identity,如Applet、Object、Embed等元素。比如在Applet对象实例中,我们将使用其name来引用该对象。
用途5:
在img元素和map元素之间关联的时候,如果要定义img的热点区域,需要使用其属性usemap,使usemap="#name"(被关联的map元素的name)。
用途6:
某些特定元素的属性,如attribute,和param。例如为Object定义参数<param name = "appletParameter" value= "value">。
用途7:
name属性也可以作为客户端对象的标识,可以使用javascript的document.getElementByName('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 |