ID是html标签的标识符,如果一个标签没有id而有name,那么就用name值做为标识符,另外表单元素的name值会被发回服务器,在服务器端获取一个表单元素的值必须通过这个name的值来获取,值得说的是id虽然是标识符但多个标签可以共用一个id,这样通过客户端脚本document.all["id"]或者document.getElementById("id")获取的元素就是一个集合而不是一个单独的html元素name主要用于提交表单数据时使用,如
<input type="text" name="UserName">
这样,提交过去后,就可以通过name来得到值,
id主要用于页面内的Javascript引用。如<span id="t1">abc</span> 你就可以在页面的Javascript中写到document.all("t1").innerHTML = "<b>abc</b>"; 之类的语句。
上周我也遇到了ID和Name的问题,在页面里输入了一个input type="hidden",只写了一个ID='SliceInfo',赋值后submit,在后台用 Request.Params["SliceInfo"]却怎么也去不到值。后来恍然大悟因该用Name来标示,于是在input里加了个 Name='SliceInfo',就一切ok了。
<div>
<input type="text" value="cccccccc" name="ttt" />
</div><asp:Button ID="btnsub" runat="server" OnClick="btnSub_Click" />
</form
protected void btnSub_Click(object sender,EventArgs e)
{
Response.Write(Request.Form["ttt"]);
Response.Write(Request["ttt"]);
}
最后输出:cccccccccccccccc
有点问题是,网上有资料说ID就像是一个人的身份证号码,而Name就像是他的名字,ID显然是唯一的,而Name是可以重复的
可我测试过,一个页面中控件的id可以相同,不会出错.