HTML中Form属性Name和ID的区别

开发 前端
HTML(Hyper Text Mark-up Language)即超文本标记语言或超文本链接标示语言,是目前网络上应用最为广泛的语言,也是构成网页文档的主要语言。本文主要介绍HTML中的一个小细节,一起来看。

HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字、图形、动画、声音、表格、链接等。HTML的结构包括头部(Head)、主体(Body)两大部分,其中头部描述浏览器所需的信息,而主体则包含所要说明的具体内容。

name原来是为了标识之用,但是现在根据规范,都建议用id来标识元素。但是name在以下用途是不能替代的:

1. 表单(form)的控件名,提交的数据都用控件的name而不是id来控制。因为有许多name会同时对应多个控件,比如checkbox和radio,而id必须是全文档中唯一的。此外浏览器会根据name来设定发送到服务器的request。因此如果用id,服务器是无法得到数据的。

2. frame和window的名字,用于在其他frame或window指定target。

以下两者可以通用,但是强烈建议用id不要用name:

锚点,通常以前写作

  1. <a name="myname"> 

 

现在可以用任何的元素id来指定:

  1. <div id="myid"> 

 

以下只能用id:

1. label与form控件的关联,

  1. <label for="MyInput">My Input</label> 
  2. <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基本上没有什么要求,甚至可以用数字。

希望对大家有帮助。

【编辑推荐】

  1. CSS实现HTML元素透明的那些事
  2. 3款新鲜的CSS3&HTML5框架
  3. HTML5笔记之HTML5的定义
  4. HTML5中div section article的区别
  5. HTML5笔记之为什么需要HTML5

 

责任编辑:于铁 来源: 百度空间
相关推荐

2010-08-17 09:41:22

DIVSpan

2010-09-09 14:16:24

pxemCSS

2010-09-14 13:05:10

VisibilityDisplayCSS DIV

2010-08-23 13:29:43

HTMLpadding

2010-08-23 13:45:28

padding-botCSSpadding-rig

2010-08-20 15:56:58

padding-toppadding-lefCSS

2011-10-14 09:53:52

HTML 5

2010-08-23 13:21:51

padding-lefpadding-rigCSS

2010-08-23 15:40:18

MarginBorderPadding

2023-11-20 14:41:34

Python属性

2010-09-07 16:21:37

CSSDisplayVisibility

2010-08-30 10:52:39

CSSclassid

2010-08-23 14:16:17

DIVclassid

2010-09-28 10:33:59

HTML DOM Ch

2010-09-16 10:29:47

DisplayVisibilityCSS

2010-08-23 10:57:14

CSSclassid

2011-05-12 16:45:02

HTML5divsection

2023-10-12 08:25:18

Javaequals内存

2010-08-25 09:03:03

marginpadding

2010-09-13 12:56:56

CSSpositionfloat
点赞
收藏

51CTO技术栈公众号