问题描述:使用jQuery来控制checkbox的选中状态,但是第一次点击出现选中样式,之后点击可以看到checked的属性增加成功但是并没有选
中状态。

问题代码:

function chooseAllOrNot(id){
var choose=$("input[name='"+id+"']").attr('checked');
if(choose=='checked'){
$("input[type=checkbox][name='"+id+"']").removeAttr('checked');
choose=$("input[name='"+id+"']").attr('checked');
}else{
$("input[type=checkbox][name='"+id+"']").attr('checked', 'true');
choose=$("input[name='"+id+"']").attr('checked');
}
}

  

解决方法:

function chooseAllOrNot(id){
var choose=$("input[name='"+id+"']").prop('checked');
if(choose){
$("input[type=checkbox][name='"+id+"']").removeProp('checked');
choose=$("input[name='"+id+"']").prop('checked');
}else{
$("input[type=checkbox][name='"+id+"']").prop('checked', true);
choose=$("input[name='"+id+"']").prop('checked');
}
}

  

  或者使用javascript原生代码来实现

var fir = document.getElementsByName("name");
for(var i=fir;i<fir.length;i++){
fir[i].checked = true;
}

  

总结:使用attr()给属性checked赋值,发现无论赋予什么值,只要给这个属性赋值了就是选中状态,使用.attr('checked', 'true');

和.attr('checked', 'false'),结果都是选中状态,可以使用attr()和removeAttr(),或者使用.attr('checked', true);和.attr

('checked', false),但是使用attr()出现了只有第一次会出现选中和取消选中的状态,后面点击没有选中状态但是代码显示对checked属性控制成

功的,只能改为使用prop()或者使用javascript原生代码来控制,才不会出现上述情况。

附:

什么时候使用attr(),什么时候使用prop()?
1.添加属性名称该属性就会生效应该使用prop();
2.是有true,false两个属性使用prop();
3.其他则使用attr();

jQuery控制checkbox选中状态但是不显示选中的更多相关文章

  1. jQuery 更改checkbox的状态,无效

    今天写页面遇到复选框动态全选或全不选问题,正常写法如下: $("#tb").find("input[type='checkbox']").attr(" ...

  2. jQuery实现checkbox(复选框)选中、全选反选代码

    谁都知道 在html 如果一个复选框被选中 是 checked="checked". 但是我们如果用jquery alert($("#id").attr(&qu ...

  3. jquery关于checkbox复选框是否被选中的问题

    本人在项目中需要用到,判断哪些复选框被用户选中.自然而然想到用 if($('').attr('checked') == true) 但是不管有没有选,$('').attr('checked')返回的都 ...

  4. jquery 获取 CheckBox 的状态

    <td style="width:220px;vertical-align:central;"><input type="checkbox" ...

  5. 实现CheckBox的三种选中状态(全选、半选、不选)在GridView中模拟树形的功能

    度娘了很多帖子,只说三种状态要用图片替换来做,但没找到有用的例子,被逼自己写了一个 三方控件肯定是很多的,如jstree,可以直接用 由于公司的UDS限制,不能上传图片,只能文字说明了. 就是要在gr ...

  6. Jquery判断checkbox是否被选中

    jQuery中: $("input[type='checkbox']").is(':checked') 返回true或false 1.attr()方法  设置或者返回备选元素的值 ...

  7. Dtree 添加 checkbox 复选框 可以默认选中

    一:目标 要实现用一个树形结构的展示数据,每个节点(除了根节点)前有一个checkbox,同时,点击父节点,则子节点全选或者全不选,当选中了全部子节点,父节点选中:如下图所示: 同时可以在创建的时候, ...

  8. 关于JQuery设置checkbox checked 的问题

    近日做一个关于JQuery表单验证,有一个比较奇葩的要求,即checkbox是为必填项,textbox不是必填的. 而checkbox与textbox又是相关的,填写了textbox,则其上方的che ...

  9. JQuery遍历CheckBox踩坑记

    $("#checkbox_id").attr("checked"); //获取一个CheckBox的状态(有没有被选中,返回true/false) $(&quo ...

随机推荐

  1. Atitit. 委托的本质 c#.net java php的比较

    Atitit.class 与type的区别,抽象的级别 class, delegate,interface委托的本质 1. 委托是粒度更细的接口 1 2. 委托模式 1 3. Java中的委托 1 4 ...

  2. NIO--SocketChannel发送HTTP请求

    import java.net.InetSocketAddress; import java.nio.ByteBuffer; import java.nio.channels.SocketChanne ...

  3. boost 库的安装

    一.windows下 环境:win7 64位 方法1:使用.exe类型的boost进行安装,也就是编译过得,这种方法最简单.下载后直接执行.exe就行了. http://sourceforge.net ...

  4. 使用JSTL的xml:parse标签(或者说x:parse)出现异常NoSuchMethodError,找不到doc的setter method

    症状: 如题 <c:import var="hz" url="/xyz/abc.xml" charEncoding="UTF-8"/& ...

  5. Android——问题解决之adb not responding;adb不是内部或外部命令;path变量的默认值为多少

    adb not responding 恩,这是出现的问题.我们开始来解决它吧! 出现这种问题大多是因为adb端口被占用导致这个问题,所以只要找到占用端口号程序,结束即可!就是这么简单(adb运行端口号 ...

  6. SQL Server从读写频繁的大表中删除大批量数据

    如果我们直接用delete from语句来删除读写频繁的大表中的数据,很有可能会因为where的条件是全表扫描从而导致整个表被锁住了.如果该表是读写频繁的生产库那简直就是一场灾难,所有的线上读写请求都 ...

  7. python ascii codec can't decode

    提示错误: UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 240: ordinal not in range ...

  8. SQL on Hadoop 的真相(1)

    转自:http://blog.jobbole.com/86710/ 这是一组系列博文,目的是详尽介绍 SQL-on-Hadoop .本系列的第一篇会介绍 Hadoop 系统的存储引擎和在线事务处理(简 ...

  9. google cloud之查看任务任务过程

    点击侧边栏的logging

  10. 邂逅明下(巴什博弈+hdu2897)

    H - 邂逅明下 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Sta ...