HTML 表单之label标签介绍

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTML 表单之label标签介绍相关的知识,希望对你有一定的参考价值。

参考技术A 转自: html 表单之label标签介绍
label标签介绍
label标签为input元素定义标注(标记),它不会向用户呈现任何特殊效果,和span标签类似。但label标签和span标签最大的区别就是它为鼠标用户改进了可用性,可以关联特定的表单控件。

label标签和特定表单控件关联之后,如果用户在 label 元素内点击文本,就会触发关联的表单控件。就是说,当用户选择该label标签时,浏览器就会自动将焦点转到和label标签相关的表单控件上。

主要使用场景
label标签常用于与checkbox或radio关联,以实现点击文字也能选中/取消checkbox或radio。如下图,点击文字和点击前面的单选框效果相同,即加大了控件的可点击区域较大,因为点击标签或控件都将激活控件,这对于复选框和单选框特别有用。

label标签和特定表单元素关联方式
label标签的关联方式主要有两种,显示关联和隐式关联:

显式关联是通过label标签的for属性,显式与另一个表单控件关联。需要注意的是,for属性的值必须是与label标签在同一文档中的可标记表单元素的id,注意是id而不是name。如:

效果图:

隐式关联是直接将表单控件放到label标签内,这种情况下,label标签只能包含一个表单元素,包含多个只对第一个有效。如下:

<label>点击我可以使文本框获得焦点
<input type='text' name='theinput' id='theinput'>
</label>

效果图如下,点击文字便能是文本框获得焦点:

显示关联和隐式关联的优缺点:
显式关联优点:

可以减少标签嵌套层数
label标签和表单可以在不同的位置
显示关联缺点:

控件需要定义id属性
label标签和表单控件不利于作为一个整体来控制
隐式关联优点:

控件无需定义id
标签和控件方便作为一个整体控制
隐式关联缺点:

增加了标签嵌套层数
不能将标签和关联控件放到不同的位置
以上是个人对两种方式的看法,使用时可按需要选择显示或隐式。

label标签的浏览器支持及可关联的表单元素
所有主流浏览器都支持label标签。Safari 2 或更早的版本不支持label标签。

能使用显示关联的表单元素有:

input type="text" 文本框,点击标签时关联的文本框获得焦点。
input type="checkbox" 复选框,点击标签时选中或取消选中复选框。
input type="radio" 单选框,点击标签时选中单选框。
input type="file" 文件上传,点击标签时打开文件选择对话框。
input type="password" 密码框,点击标签时密码框获得焦点。
textarea 文本域,点击标签时文本域获得焦点。
select 下拉框,点击标签时,下拉框获得焦点,不过并不展开下拉框选项。
label标签的form属性
form 属性指定label标签元素所属的表单。如下,虽然label标签在myform表单外,但仍属于myform表单。如下:

<form action="http://songguoliang.com/test.html" id="myform">
<input type="radio" name="sex" id="male" value="male">

<label for="female">女</label>

<input type="submit" value="提交">
</form>

<label for="male" form="myform">男</label>

效果图如下,点击”男”同样可以选中第一个单选框

注:
该form属性已于2016年4月28日从HTML规范中删除。但是,脚本仍然可以访问只读HTMLLabelElement.form属性; 它返回标签的关联控件是成员的形式,或者null如果标签未与控件相关联或控件不是表单的一部分。

Jquery学习笔记:操作form表单元素之二(复选框和单选框)

在上面文章的基础上,我们介绍如何操作表单元素中的 复选框和单选框。

一、复选框

<label> <input type="checkbox" id="item" checked> 全选</label>

注意,input标签要放在label标签内,这样点击文字时也会有反映。

如果选中了,调用  $("#item").prop("checked")返回true,否则返回false

同样利用prop方法可以通过js代码来选中或取消选中复选框。

 

二、单选按钮

1、基本概念

<label><input  type="radio" >男</label>

 <label><input  type="radio" >女</label>

上面给出了2个单选按钮。但发现他们两个同时都能选,这个与单选按钮的使用场景不符。可以给它们设置相同的name属性,这样他们就会被看成是一组的,选中状态会互斥。如下面的方式:

<label><input  type="radio"  name="sex">男</label>

<label><input  type="radio"   name="sex">女</label>

注意,这个互斥也只是指在同一个form下。不同的form下的单选按钮,即使name值相同,也不会互斥。

2、获取单个按钮的选中状态

<label><input type="radio" id="item" name="sex">男</label>

$("#item").prop("checked")

3、 对于一组按钮,获取被选中的按钮

单选按钮的应用场景是在一组按钮中获取或设置被选中的按钮。这样首先要为每个按钮设置一个标记。通常是设置按钮的value属性。value属性的值就代表了这个按钮。

<form>

        <label><input type="radio" name="sex" value="man">男</label>

        <label><input type="radio" name="sex" value="womon">女</label>

</form>

这时,需要给每个radio设置一个不同的value,以便于知道哪个被选中了。

var obj = $("form input:checked");  //获取被选中的按钮

alert(obj.val());  //val方法返回被选中按钮的value属性值

可以连在一起  $("form input:checked").val()  //获取被选中按钮的value属性值

 注意,value属性和 checked属性含义完全不同。Checked属性代表按钮的是否被选中的状态。而value属性只是按钮的一个属性,与是否选中无关,往往用来标识一个按钮。

4、通过value属性获取相应的按钮

利用jquery的属性选择器,可以获取对应value属性值的按钮。获取到按钮后,就可以设置按钮的选中状态了。

这个场景经常遇到。比如根据服务器获取的信息,来初始化按钮的选中状态。代码如:

<form>

        <label><input type="checkbox"   value="man">男</label>

        <label><input type="checkbox"   value="womon">女</label>

</form>

代码如下

var obj = $("input[value=’man’]");  //获取value属性值为man的复选框

alert(obj.prop("checked")); //获取是否被选中

ob.prop("checked",true) //选中该单选按钮

可以看出,利用value属性和checked属性的结合,可以完成对单选按钮组的各种操作。

 

以上是关于HTML 表单之label标签介绍的主要内容,如果未能解决你的问题,请参考以下文章

HTML表单元素之<label>

html 之表单,div标签

表单中<label>标签有啥用?

如何修改el-form标签中label的文字颜色

Jquery学习笔记:操作form表单元素之二(复选框和单选框)

asp.net 微信企业号办公系统-表单设计-标签(label)