HTML 中的name属性和id属性有什么区别?

像我这样一段代码:
objWindow.strUserName=document.Data.UserName.value;
......
<form name="Data">
<input type="text" name="UserName">
......
为什么我把name属性换成id属性就取不到值了呢? 即如下:
objWindow.strUserName=UserName.value;
......
<form id="Data">
<input type="text" id="UserName">
......
谢谢您的回答!
我是按照您说的方法做的。两段代码都已经在上面了。问题是,我用ID的方法,不能获得文本框中的值。
原因是什么?期待回答!

ID 是唯一表示 ,整个页面唯一的,不允许重复
NAME 也就是名字,可以重复,整个页面任意个
例如:
document.getElementByIdx("xxx") 取出来是唯一的
document.getElementsByName("xxx") 取出来是个数组
下列有name属性
A, APPLET, attribute, BUTTON, EMBED, FORM, IMG, INPUT type=button, INPUT type=checkbox, INPUT type=file, INPUT type=hidden, INPUT type=image, INPUT type=password, INPUT type=radio, INPUT type=reset, INPUT type=submit, INPUT type=text, LINK, MAP, OBJECT, RT, RUBY, SELECT, TEXTAREA
下面的有ID,
STYLE, A, ACRONYM, ADDRESS, APPLET, AREA, B, BASE, BASEFONT, BDO, BGSOUND, BIG, BLOCKQUOTE, BODY, BR, BUTTON, CAPTION, CENTER, CITE, CODE, COL, COLGROUP, COMMENT, CUSTOM, DD, DEL, DFN, DIR, DIV, DL, DT, EM, EMBED, FIELDSET, FONT, FORM, FRAME, FRAMESET, HEAD, hn, HR, HTML, I, IFRAME, IMG, INPUT type=button, INPUT type=checkbox, INPUT type=file, INPUT type=hidden, INPUT type=image, INPUT type=password, INPUT type=radio, INPUT type=reset, INPUT type=submit, INPUT type=text, INS, ISINDEX, KBD, LABEL, LEGEND, LI, LINK, LISTING, MAP, MARQUEE, MENU, nextID, NOBR, NOFRAMES, NOSCRIPT, OBJECT, OL, OPTION, P, PLAINTEXT, PRE, Q, RT, RUBY, S, SAMP, SCRIPT, SELECT, SMALL, SPAN, STRIKE, STRONG, styleSheet, SUB, SUP, TABLE, TBODY, TD, TEXTAREA, TFOOT, TH, THEAD, TITLE, TR, TT, U, UL, VAR, WBR, XML, XMP
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-04-14
ID的属性是最高级别的.而form中的name级别是比较低的.如果说我要取一个值的话用这两种方法来写.如下:
这是name的写法
window.document.form.name.value
而ID的话则只需要用
ID.value就能够直接抓出值来.因为它比window的级别还高.所以只需要这样用

跟一个人的权力一样,需要干什麼事要经过谁同意,而最高权力者则可以自己决定.而权力比较低得则需要经过上面的批准才能执行.这是一样的道理
第2个回答  2020-04-18
用途1:
作为可与服务器交互数据的HTML元素的服务器端的标示,比如input、select、textarea、和button等。我们可以在服务器端根据其Name通过Request.Params取得元素提交的值。
用途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,meta和param。例如为Object定义参数<PARAM
NAME
=
"appletParameter"
VALUE
=
"value">或Meta中<META
NAME
=
"Author"
CONTENT
=
"Dave
Raggett">。
第3个回答  2009-04-15
ID一般是用来标识控件的 NAME是用来取值的
css中如果要给某个控件加上样式表,那么就是用ID本回答被提问者和网友采纳
第4个回答  2020-03-11
type="password"
此元素为一个密码输入框(输入字符的时候只显示*号)
name="txtpassword"
此元素的名称为txtpassword
(在同一个html文档中,name可以有重复)
id="pwd"此元素的唯一标识为pwd(在同一个html文档中,id不可以有重复)
name可以理解成一个group,就是分组。
如果你有三个radiobutton,
那么,radio1和radio2是互斥的,因为他们同属group1
但是radio3和另外两个radio没有关系
相似回答