HTML标签中id和name的区别

在学习HTML标签中的<input> 元素的输入类型时,我发现<input>标签除了拥有,type等控制输入字段的属性以外,还有两个不能被直接看出来的属性:“id”和“name”。那么这两个属性有什么不同呢?


1.定义上:

name:name 属性规定 input 元素的名称。
id:id 属性规定 HTML 元素的唯一的 id。
或许这两句话很难被区分开来,我们可以通过生活上的列子来形象地类比这个问题。我们每个人都有自己的名字和身份证号。在生活上难免会遇见和自己重名的人。但每个人的身份证号却是唯一的,这就是通过,姓名(name),与身份证idcard)来区分两者的不同。

2.用法:

在清楚了name与id的定义后,我们不难看出二者的作用肯定也是不同的,id的特殊属性决定了,每一个id元素在同一个HTML文档中必须是唯一的。而name元素却不需要这样。

name:

name的用法拿我进行表单练习的时候遇到过的一个问题做例子吧。如下图:


例子1

如图“”例子1"所示,很简单的在<form>这样的块级元素中我定义了4个单选输入。他们的name元素是一样的,因为type元素是“radio”所以就出现了,当我选择一个选项的时候另一个选项会消失。如下图所示


例子2

我选择了B选项,接下来进行C选项
例子3

B选项消失了。
然而当我对代码进行修改将<form>内部的4个<input>的name属性不同命名时


例子4

例子5

发现可以进行多项选择了。由此我们可以发现在同一个块级元素<form>内的不同的<input>中,每一个name元素都相当于对这个<form>元素所进行的赋值当不同的<input>出现相同的name时,相当于将他们绑成一个整体,这样系统才会识别他们的是作用在同一个cradio分组内。
除此以外,还有在服务器端根据name的通过Request.Params取得元素提交的值。只有设置了 name 属性的表单元素才能在提交表单时传递它们的值。如代码:
没有name的时候

Paste_Image.png

在没有name属性的情况下是没有接受到输入的。

id:

id 属性可用作链接锚(link anchor),通过 JavaScript(HTML DOM)或通过 CSS 为带有指定 id 的元素改变或添加样式。


id例子

按下change text后出现了


id例子2

由此可以发现在我们用javascript写了一个funcation之后,< h1>的id被change_header()函数获取了,之后就会出现如图所示的实现。

3.id与name的选择:

只能用id的情况:

1.label与form控件的关联, <label for="MyInput" >My Input</label> <input id="MyInput" type="text"> for属性指定与label关联的元素的id,不可用name替代。

  1. CSS的元素选择机制,以#MyId的方式指定应用样式的元素,不能用name替代。
例子

当我们需要使得用户点击文本就可以完成出发相关控件的时候,使用<label>标签,并且使得标签内部的for元素与控制点击的<input>标签的id元素相同。

通过以上例子,就可以对id属性以及name属性有了比较清楚的区分了。


详细内容需参考百度文档以及大咖博客。

      </div>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值