最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

jqueryattr处理checkbox/select等表单元素时的问题

来源:动视网 责编:小采 时间:2020-11-27 20:19:42
文档

jqueryattr处理checkbox/select等表单元素时的问题

jqueryattr处理checkbox/select等表单元素时的问题:先上html结构<body><form action=""><input type="checkbox" id="checkedAll">全选/全不选<br><input type="checkbox" name=&qu
推荐度:
导读jqueryattr处理checkbox/select等表单元素时的问题:先上html结构<body><form action=""><input type="checkbox" id="checkedAll">全选/全不选<br><input type="checkbox" name=&qu
 先上html结构

<body><form action=""><input type="checkbox" id="checkedAll">全选/全不选<br><input type="checkbox" name="items" value="足球">足球<input type="checkbox" name="items" value="蓝球">蓝球<input type="checkbox" name="items" value="羽毛球">羽毛球<input type="checkbox" name="items" value="乒乓球">乒乓球<br><input type="button" id="send" value="提交"></form></body>

如图,这是前端进阶经典书籍【锋利的jquery】中的一个案例,使用attr方法给元素添加属性以达到选中与取消效果。

要求:1. 点击全选/全部选,改变下面四个复选框选中状态;

2. 单独点击下方按钮,只要存在未选中的,则上方全选/全不选为未选中状态,全部选中,则上方全选/全不选也自动变为选中状态。

<script>"#checkedAll").on("click",
 // 判断点击后this.checked的结果,默认未选中即为false,第一次点击则为true,第二次为false,再赋值给下面的input(此处逻辑与书上稍有不同)
 // 注意事项: 使用attr给表单元素设置选中状态时,第二个参数一定要是布尔值true/false,不能习惯性写成带引号,那就是字符串了。
 if(this.checked){
 $("input[name=items]").attr("checked",true); 
 }else{
 $("input[name=items]").attr("checked",false);
 }
 })</script>

运行起来似乎没问题,但当多次点击之后会发现,属性可以添加上去,但选中状态并没有改变。

what's wrong?

这就要归宿到jQuery的版本问题了,在1.6之后,对于元素固有的属性,应该使用 prop() 方法。

<script>$("#checkedAll").on("click",function(){
 console.log(!this.checked);if(this.checked){
 $("input[name=items]").prop("checked",true);
 }else{
 $("input[name=items]").prop("checked",false);
 }
 })</script>

以上代码还可以精简为

<script>$("#checkedAll").on("click",function(){
 $("input").prop("checked",this.checked);
 })</script>

文档

jqueryattr处理checkbox/select等表单元素时的问题

jqueryattr处理checkbox/select等表单元素时的问题:先上html结构<body><form action=""><input type="checkbox" id="checkedAll">全选/全不选<br><input type="checkbox" name=&qu
推荐度:
标签: 元素 ch 复选框
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top