首先,复选框属性中的 value='xxx' 和它的勾选状态 checked='xxx' 一般,没关系!(听说如果没预设 value 属性,它会为 on,莫名其妙)
所以不可以使用设置value的方式更改复选框状态。
之后,就是操作 checked 属性的方法了
- 由于只要存在 'checked' 属性(即使是
checked=false/''
)都会被认定为勾选,所以在HTML层面只能通过添加或删除该属性来控制复选框状态,使用attr()
和removeAttr()
实现; -
真正对属性值进行操作使用
prop()
(具体用法请自行了解),我感觉使用该方法控制复选框的状态很方便。
推荐在菜鸟教程的prop与attr的区别在线体验,
可以改动 js 代码,测试一下修改属性的效果,
也可以使用 $("input").val()
获取复选框的值,输出看一看。
使用 prop() 改变复选框状态
<input type="checkbox" name="kunkun" value="菜鸡">
<button type="button">点击勾选复选框</button>
<script>
$(function(){
$("button").click(function(){
$("[type='checkbox']").prop("checked", true); // false 为取消复选框 注意属性值不带引号
});
});
</script>
注意:prop("checked",值)
在checked这里,属性值不带引号才有效。
甚至可以实现一个按钮toggle复选框状态
<input type="checkbox" name="kunkun" value="菜鸡">
<button type="button">点击切换复选框状态</button>
<script>
$(function(){
$("button").click(function(){
$("[type='checkbox']").prop("checked", function( idx, value ){
// 使用prop()读取复选框 checked 属性值,并据值执行相应函数
alert("现在是"+idx+"号复选框元素被处理"); // idx是当前元素的索引,从 0 开始
if(value){ // value 是当前元素的 checked 属性的值
$(this).prop("checked", false); // 使用prop()修改复选框状态
} else {
$(this).prop("checked", true);
}
});
});
});
</script>