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="radio" value="man">男</label>
<label><input type="radio" value="womon">女</label>
</form>
代码如下
var obj = $("input[value='man']"); //获取value属性值为man的复选框
alert(obj.prop("checked")); //获取是否被选中
ob.prop("checked",true) //选中该单选按钮
可以看出,利用value属性和checked属性的结合,可以完成对单选按钮组的各种操作。