问题的由来:html页面中使用checkbox给新建用户授权,然后提交到后台服务器,完成给用户授权。用户授权完成之后,如果用户的权限发生改变管理员需要修改多个用户的权限或查看某用户的权限,点击不同的用户时就需要在checkbox中显示不同用户的权限信息,此时就需要动态的修改checkbox。

  解决方法的探索:

  首先,使用Jquery的attr对checkbox进行遍历,所有的checkbox都设置为false,未选择。

$('input[name="auth"]').each(function(){
$(this).attr("checked",false);
});

  接下来,通过ajax传入用户名,得到json,并获取用户所拥有的权限模块,通过checkbox的value设置模块是否选择

$.ajax({
type:"post",
url:"demo",
daattype:"json",
data:{
type:"getright",
username:username
},
success:function(data){
var authObjs = eval("("+data+")");//解析json数据
if(authObjs.status === false){
}
else if(authObjs.status === true){
var authApps = authObjs.apps;
$.each(authApps,function(i,authApp){
$("input:checkbox[value='"+authApp+"']").attr('checked',true);
});
}
}
});

  最终的结果不是很理想,第一次请求是可以的,如果我的权限只有第一和第二个,那么只有这两个勾选了;第二次换另一个人,他原本有四个权限,那么除了一和二其他两个被勾选,第三次再换一个人,他没有任何权限,也可以显示都未勾选;重点来了,如果再切换第一个或第二个人,那么显示都未勾选。

  使用浏览器的调试功能会发现代码执行正确,但是checked属性却未改变。

  解决办法:经过多方查证,attr和prop的使用是有不同的,如果前面代码的attr都修改为prop就可以完美的达到预期的效果,即选中某个人就可以显示某个人当前所拥有的权限。

  在此给出attr和prop的区别(我认为比较简单的解释):

    • 对于HTML元素本身就带有的固有属性,在处理时,使用prop方法;
    • 对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法。

Jquery动态操作checkbox的更多相关文章

  1. IE7中使用Jquery动态操作name问题

    问题:IE7中无法使用Jquery动态操作页面元素的name属性. 在项目中有出现问题,某些客户的机器偶尔会有,后台取不到前台的数据值. 然开发和测试环境总是不能重现问题.坑爹之处就在于此,不能重现就 ...

  2. 黄聪:JQUERY判断操作CHECKBOX选中、取消选中、反选、第二次无法选中的问题

    用JQuery做CheckBox全选和反选的时候,遇到一个问题.当用JQ控制全选,全取消一次以后,再次点击全选,发现代码变了,但是CheckBox没有处于选中状态. $("#id" ...

  3. JQuery动态操作表格

    新人,小白一枚,刚刚参加工作,所以会在这里记录一些遇到的问题. 最近要做的东西,是对一个表格动态的添加行,删除行,并且对表格中内容进行非空验证. <!DOCTYPE html> <h ...

  4. jquery动态操作元素

    <!DOCTYPE html><html lang="en" xmlns="http://www.w3.org/1999/xhtml"> ...

  5. Jquery动态在td中添加checkbox

    如图:想要在这个id为headId的<td>中,用jquery动态添加checkbox 代码如下 : data是我用ajax 从后台获取的数据,里面含有若干个user类,我想把所有的人名字 ...

  6. jquery操作checkbox方法(全选、全不选、至少选择一个、选择值/文本)

    原文:http://blog.csdn.net/u014079773/article/details/52371382 在实际开发中我们经常操作checkbox,不仅仅要获得checkbox选中的值, ...

  7. jQuery动态对表格Table进行添加或删除行以及修改列值操作

    jQuery,不仅可以以少量的代码做很多操作,而且兼容性好(各种浏览器,各种版本). 下面用jQuery动态对表格Table进行添加或删除行以及修改列值操作 1.jQuery代码 <script ...

  8. 解决jquery操作checkbox全选全不选无法勾选问题

    最近在学习中使用jquery操作checkbox,使用下面方法进行全选.反选:$("input[name='checkbox']").attr("checked" ...

  9. jQuery操作CheckBox的方法(选中,取消,取值)

    jQuery操作CheckBox的方法(选中,取消,取值). 代码: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional/ ...

随机推荐

  1. Terra Vista 6.2

    最近在做虚拟仿真相关工作,想把GIS中的一些想法用虚拟显示技术实现,在保证准确性的同时,提高展现效果. 前不久在朋友圈获得了一个强大的三维地形构建软件Terra Vista 6.2,据说这个软件是加拿 ...

  2. Kafka学习笔记-Java简单操作

    Maven依赖包: <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka ...

  3. Gradle使用小结

    Gradle是CI过程工具,而不是系统.持续集成过程中的构建.自动化测试.打包.发布都可以使用Gradle来完成.而持续进程过程为我们降低各方面成本,提高产品信心,提高产品质量有着非常重要的作用(不要 ...

  4. jquery on和bind

    1:bind():为每个匹配元素的特定事件绑定事件处理函数. bind(type,[data],fn) type: 含有一个或多个事件类型的字符串,由空格分隔多个事件. 比如"click&q ...

  5. CAD2008 启动慢 卡住

    CAD2008打开很慢解决CAD2008打开很慢的方法: 第一个:1.[开始]―[控制面板]. 2.选择[网络和Internet连接]选项,再点[Internet选项]. 3.在Internet属性对 ...

  6. [Machine-Learning] matlab 矩阵常见基本操作

    概述 对矩阵的主要操作,matlab 中都有现成的指令或者库函数与之对应. 矩阵最早来自于方程组的系数和常数所构成的方阵,这一概念是由19世纪的英国数学家凯利提出的. 创建矩阵 这里写的不全,但是足够 ...

  7. 《.Net 的冰与火之歌》寄雁传书,你必须知道的C#参数知识大盘点

    引言 参数,也叫参变量,是一个变量.在方法签名中随处可见,实现了不同方法间对于数据的寄雁传书,基本上充斥在代码的各个角落里.在方法签名或者原型中,方法名称后的括号包含方法的参数及其类型的完整列表.参数 ...

  8. JQuery下focus()无法自动获取焦点的处理方法 jquery如何使文本框获得焦点

    今天遇见这么一个小小的问题,就是文本框中需要输入内容才可以提交,如果没有输入就提示并使该文本框获得焦点! 这么一个简单的事情如果没有使用 jQuery的话 是不是对象.focus()就可以了, Jav ...

  9. LaTeX用dvi编译,Yap浏览器弹出对话框,决解办法(傻瓜教程)

      1,打开windows-----所有运用,找到CTEX的文件目录 2,打开Previewer对话框 打开后如图: 2,选择view – option 打开后如下图: 3,选择Display---- ...

  10. BZOJ 4517: [Sdoi2016]排列计数

    4517: [Sdoi2016]排列计数 Time Limit: 60 Sec  Memory Limit: 128 MBSubmit: 911  Solved: 566[Submit][Status ...