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

  就是通过复选框设置权限,权限是分等级的,这是一个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绑定就不错,应用的代码如下:

         地区管理:<br />
<div style="margin-left:238px;">
查看<input type="checkbox" class="am-input-sm" name="area[0]" id="area0" value="1" />
&nbsp;
编辑<input type="checkbox" class="am-input-sm" name="area[1]" id="area1" value="1" />
&nbsp;
删除<input type="checkbox" class="am-input-sm" name="area[2]" id="area2" value="1" />
</div>
<script type="text/javascript">
$(document).ready(function(){
$('#area2').click(function(){
if($('#area0').prop('checked')==false&&$('#area2').prop('checked')==true){
$('#area0').prop('checked',true);
}
});
$('#area1').click(function(){
if($('#area0').prop('checked')==false&&$('#area1').prop('checked')==true){
$('#area0').prop('checked',true);
}
});
$('#area0').click(function(){
if($('#area0').prop('checked')==false&&$('#area1').prop('checked')==true){
$('#area1').prop('checked',false);
}
if($('#area0').prop('checked')==false&&$('#area2').prop('checked')==true){
$('#area2').prop('checked',false);
}
});
});
</script>

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

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

  1. 对jquery操作复选框

    摘要:jquery操作复选框.使用更简洁易懂,思路清晰,逻辑更明了,很实用 <!DOCTYPE html> <html> <head> <meta chars ...

  2. jQuery操作复选框checkbox技巧总结 ---- 设置选中、取消选中、获取被选中的值、判断是否选中等

    转载:https://blog.csdn.net/chenchunlin526/article/details/77448168 jQuery操作复选框checkbox技巧总结 --- 设置选中.取消 ...

  3. jquery操作复选框(checkbox)十二技巧

    jquery操作复选框(checkbox)的12个小技巧. 1.获取单个checkbox选中项(三种写法)$("input:checkbox:checked").val()或者$( ...

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

    参考资料 http://www.paobuke.com/develop/javascript/pbk849.html   这天用到jQuery功能,想实现一个简单的复选框动态全选或全不选,结果测试发现 ...

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

    这天用到jQuery功能,想实现一个简单的复选框动态全选或全不选,结果测试发现 attr(‘checked’,'checked’);与attr(‘checked’,true); 都不好使,要么第一次成 ...

  6. jquery操作复选框(checkbox)的一些小技巧总结

    1.获取单个checkbox选中项(三种写法) //第一种 $("input:checkbox:checked").val() //第二种 $("input:[type= ...

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

    赋值 复选框 CheckBox 遍历 取值  1. 获取单个checkbox选中项(三种写法): $("input:checkbox:checked").val() 或者 $(&q ...

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

    1.获取单个checkbox选中项(三种写法)$("input:checkbox:checked").val()或者$("input:[type='checkbox']: ...

  9. jquery操作复选框(checkbox)

    1.获取单个checkbox选中项(三种写法)$("input:checkbox:checked").val()或者$("input:[type='checkbox']: ...

随机推荐

  1. Java设计模式-工厂方法模式(Factory Method)

    工厂方法模式(Factory Method) 工厂模式适合:凡是出现了大量的产品需要创建,并且具有共同的接口时,可以通过工厂方法模式进行创建.在以下的三种模式中,第一种如果传入的字符串有误,不能正确创 ...

  2. FastDFS在.Net平台上的使用

    上一篇,了解了FastDFS是什么东东,一般稍微大一的网站都会做文件分离存储,FastDFS这轻型的分布式文件存储方式,非常有用. 此图片截取博友(张占岭)的勿喷 下面我们就了解一下,FastDFS在 ...

  3. bootstrap table简洁扁平的表格

    使用方法 1.在html页面的head标签中引入Bootstrap库(假如你的项目还没使用)和bootstrap-table.css. <link rel="stylesheet&qu ...

  4. c#创建ISS站点

    private void CreateWebSite() { try { string installPath = "C:\\Program Files\\MyWeb"; stri ...

  5. std::ios::sync_with_stdio(false);

    这句语句是用来取消cin的同步,什么叫同步呢?就是iostream的缓冲跟stdio的同步.如果你已经在头文件上用了using namespace std;那么就可以去掉前面的std::了.取消后就c ...

  6. JSP登录验证并显示信息

    加入C标签: 加入jstl.jar 和standard.jar加入Lib文件夹中 将c.tld放入WEB-Info文件夹中 index.jsp <%@ page language="j ...

  7. Myeclipse连接mysql数据库

    第一步:下载mysql驱动 驱动地址:http://www.mysql.com/products/connector/ .选择JDBC Driver for MySQL (Connector/J). ...

  8. BUAA1389愤怒的DZY(最大值最小化)

    http://acm.buaa.edu.cn/problem/1389/ 愤怒的DZY[问题描述]“愤怒的小鸟”如今已经是家喻户晓的游戏了,机智的WJC最近发明了一个类似的新游戏:“愤怒的DZY”.游 ...

  9. omnetpp inet

    http://blog.csdn.net/midie/article/details/5086983 omnetpp inet 自带了Mingw编译环境,而不再需要Visual C编译环境了.事实上, ...

  10. Bootstrap Modals(模态框)

    http://www.runoob.com/bootstrap/bootstrap-v2-modal-plugin.html 描述 Bootstrap Modals(模态框)是使用定制的 Jquery ...