jQuery操作复选框的简单使用

  开发中为了实现一个小功能,就是复选框的相互影响事件,如下图:

  就是通过复选框设置权限,权限是分等级的,这是一个web管理系统的应用,一个管理员具有三个权限赋予,权限也是有等级的,其中删除和编辑权限相当,就是说当拥有编辑和删除权限时,一定拥有查看权限,反过来不一定。但是没有查看权限时,一定没有编辑和删除权限,大体就是这么个逻辑

  在前端为了用户体验,用jQuery绑定点击事件来完成,开始用的方法是.attr(),用法是$("[name = inputname]:checkbox").attr("checked", true);

这样就能实现复选框的选中效果,网上大部分都是这种方法,是可以的,但是注意name不能设置成比如name="name1[0]"这种格式,否则上述方法会运行错误,因为[ ]这种符号name属性是不支持的,但是后端用起来是数组格式,比较方便,所以如果表单name带有中括号,这种方法是不能用的。

  另外也测试了其他方法,有时候开发者模式下发现复选框属性确实变成了checked,但是效果上却没有选中,并且attr返回值是checked这样的话对复选框操作的难度增大了,所以放弃了这个方法,我个人比较习惯使用id选择器操作,下面方法可以完美的适用于这个问题的操作

  jQuery中还有一个类似attr的方法,就是prop这个方法非常适合于复选框之类的操作,有两种用法如下:

    1、返回属性的值:$(selector).prop(property),一般返回true和false

    2、设置属性的值:$(selector).prop(property,value),比如设置选中或者是否可用

  另外第二个参数还可以用函数设置属性和值,这里就不具体说了

有了这个操作,我们应该什么时候用attr和prop方法呢,我的体会是一般设置表单的样式之外的单一值属性,比如required,checked,disabled,readonly,这类属性可以写成checked也可以写成checked="checked",就使用prop方法,一般返回值是true或者false的布尔值,另外就用attr设置就行了,比如src,style等都是很好用的

网上有一种解释也不错,记录一下:

  1.添加属性名称该属性就会生效应该使用prop();

  2.是有true,false两个属性使用prop();
  3.其他则使用attr();

比如我这个小特效,可以使用onchange或者onclick绑定事件,但是其实操作需要好几个事件,所以要写好几个函数,直接用jQuery的id绑定就不错,应用的代码如下:

 1         地区管理:<br />
 2         <div style="margin-left:238px;">
 3             查看<input type="checkbox" class="am-input-sm" name="area[0]" id="area0" value="1" />
 4             &nbsp;
 5               编辑<input type="checkbox" class="am-input-sm" name="area[1]" id="area1" value="1" />
 6               &nbsp;
 7               删除<input type="checkbox" class="am-input-sm" name="area[2]" id="area2" value="1" />
 8         </div>
 9         <script type="text/javascript">
10         $(document).ready(function(){
11             $(‘#area2‘).click(function(){
12                 if($(‘#area0‘).prop(‘checked‘)==false&&$(‘#area2‘).prop(‘checked‘)==true){
13                     $(‘#area0‘).prop(‘checked‘,true);
14                 }
15             });
16             $(‘#area1‘).click(function(){
17                 if($(‘#area0‘).prop(‘checked‘)==false&&$(‘#area1‘).prop(‘checked‘)==true){
18                     $(‘#area0‘).prop(‘checked‘,true);
19                 }
20             });
21             $(‘#area0‘).click(function(){
22                 if($(‘#area0‘).prop(‘checked‘)==false&&$(‘#area1‘).prop(‘checked‘)==true){
23                     $(‘#area1‘).prop(‘checked‘,false);
24                 }
25                 if($(‘#area0‘).prop(‘checked‘)==false&&$(‘#area2‘).prop(‘checked‘)==true){
26                     $(‘#area2‘).prop(‘checked‘,false);
27                 }
28             });
29         });
30         </script>

这是一部分代码,但是完全实现了这个功能,逻辑也比较简单,需要注意的一点是比如点击删除后即id="area2"的复选框后,复选框被选中,这一瞬间值是改变的,从没选中到选中,$("#area2").prop("checked")的值从false变成了true,注意这里其他的就没问题了

时间: 2024-10-10 05:54:16

jQuery操作复选框的简单使用的相关文章

jQuery 操作复选框(checkbox) attr checked不起作用

jQuery 更改checkbox的状态,无效 $(this).attr("checked", false).checkboxradio("refresh");     //应该这么写吧,少了$这个东东~~~跟js混淆了 jQuery 操作复选框(checkbox) attr checked不起作用 这 天用到jQuery功能,想实现一个简单的复选框动态全选或全不选,结果测试发现 attr(‘checked’,'checked’);与attr(‘checked’,t

对jquery操作复选框

摘要:jquery操作复选框.使用更简洁易懂,思路清晰,逻辑更明了,很实用 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script src="jquery-1.11.2.min.js"></script><!--引入jquery-1.11.2.min.js要在最上面--

jquery操作复选框(checkbox)的12个小技巧总结

1.获取单个checkbox选中项(三种写法)$("input:checkbox:checked").val()或者$("input:[type='checkbox']:checked").val();或者$("input:[name='ck']:checked").val(); 2. 获取多个checkbox选中项$('input:checkbox').each(function() {        if ($(this).attr('che

jQuery——操作复选框(checkbox) attr checked不起作用

这天用到jQuery功能,想实现一个简单的复选框动态全选或全不选,结果测试发现 attr('checked','checked');与attr('checked',true); 都不好使,要么第一次成功了,第二次调用就没反应,完全不起作用了.那到底是什么原因呢? 害得'跑客教授'到处到网上搜 jQuery checkbox的操作,动态选择的相关文章,都写着是这样的实现代码 $('input[type=checkbox]').attr('checked','checked');//全选,设置属性

Jquery操作复选框(CheckBox)的取值赋值实现代码

赋值 复选框 CheckBox 遍历 取值 1. 获取单个checkbox选中项(三种写法): $("input:checkbox:checked").val() 或者 $("input:[type='checkbox']:checked").val(); 或者 $("input:[name='ck']:checked").val(); 复制代码 2. 获取多个checkbox选中项: $('input:checkbox').each(funct

关于jQuery操作复选框checkbox的attr无效的问题的解决方案

q用了10版本的,一直发现attr无效,其实解决问题的方法是很简单的,主要的问题是由于 新版本attr换成了prop的问题. $("input[name='delIds']").prop("checked",this.checked);

jquery操作复选框(checkbox)

1.获取单个checkbox选中项(三种写法)$("input:checkbox:checked").val()或者$("input:[type='checkbox']:checked").val();或者$("input:[name='ck']:checked").val(); 2. 获取多个checkbox选中项$('input:checkbox').each(function() {        if ($(this).attr('che

jQuery实现复选框全选/全部取消/反选/获得选择的值

本地单文件上传脚本,命名uf 这是在本机上做的测试,利用bpcs_uploader脚本实现,只是进行简单的封装,自动完善云端文件路径. 技术要点:使用dirname获取文件所在目录,使用pwd获取文件完整路径,并作为云端文件路径. #!/bin/bash cur_dir=$(cd "$(dirname "$1")"; pwd) name=$(basename "$1") /home/grm/bin/bpcs_uploader/bpcs_uploa

jquery实现复选框全选,全不选,反选中的问题

今天试了一下用jquery选择复选框,本来以为很简单的东西却有bug,于是搜索了一下找到了解决方法. html代码如下(这里没有用任何样式,就没有再放css了): <html> <head> <meta charset="utf-8"> <link rel="stylesheet" href="test_ch5.css" > <title>test_ch5</title> &