jQuery控制checkbox选中状态但是不显示选中

问题描述:使用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();

时间: 2024-10-07 18:54:33

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

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

谁都知道 在html 如果一个复选框被选中 是 checked="checked". 但是我们如果用jquery alert($("#id").attr("checked")) 会提示您是true而不是checked 所以很多朋友判断  if($("#id").attr("checked")=="true") 这个是错误的,其实应该是 if($("#id").attr

jQuery 更改checkbox的状态,无效

今天写页面遇到复选框动态全选或全不选问题,正常写法如下: $("#tb").find("input[type='checkbox']").attr("checked","checked"); but!第一次点击全选按钮input显示对勾,第二次就不行了,查了下有建议用prop的,亲测有效.那两者有啥区别呢? jQuery函数attr()和prop()的区别: 1.操作对象不同 attr和prop分别是单词attribute和p

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

本人在项目中需要用到,判断哪些复选框被用户选中.自然而然想到用 if($('').attr('checked') == true) 但是不管有没有选,$('').attr('checked')返回的都是undefined,于是百度各种其他的方法: if ($('')get(0).checked) if($('').is(':checked')) 但是都不起作用,后来终于找到问题的原因了.我用的jquery是1.11.3,但是在1.6以后jquery便作出了改进,在页面加载完毕时,checkbox

jquery控制checkbox

选择/取消一组复选框 /** * 选择/取消一组复选框 * @param checkAllId 全选checkboxId * @param objName 要操作的一组checkBox的name */ function selectGroup(checkAllId,objName) { $('input[name='+objName+']').prop('checked', $("#"+checkAllId).prop('checked')); } 获取选择的一组复选框的值 funct

jquery 获取 CheckBox 的状态

<td style="width:220px;vertical-align:central;"><input type="checkbox" id ="txtsNoBalaceFinish" /></td> // 用来判断有无选中 $("#txtsNoBalaceFinish").is(":checked");

jquery控制checkbox全选与全不选

$("#medicineCheck").change(function () { var isChecked=$("#medicineCheck").is(':checked'); //获取所有checkbox组成的数组 var checkedArrs=$("input[name='medicineCheckBox']"); //判断是全选还是反选 if(isChecked){ checkedArrs.each(function(){ $(thi

取消cell的选中状态,当其选中时

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ [tableView deselectRowAtIndexPath:indexPath animated:YES]; //[self performSegueWithIdentifier:@"toplay" sender:nil]; }

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

度娘了很多帖子,只说三种状态要用图片替换来做,但没找到有用的例子,被逼自己写了一个 三方控件肯定是很多的,如jstree,可以直接用 由于公司的UDS限制,不能上传图片,只能文字说明了. 就是要在gridview中实现如下效果:一级.二级因为三级没有全部选中而显示半选状态 ?一级    ?二级       三级1        三级2 js↓ $(function(){ BindCheckNode(); $("span[name^='lblCheck']").click(checkBo

关于JQuery设置checkbox checked 的问题

近日做一个关于JQuery表单验证,有一个比较奇葩的要求,即checkbox是为必填项,textbox不是必填的. 而checkbox与textbox又是相关的,填写了textbox,则其上方的checkbox即相当于勾选.在使用中,用户很容易只注意到textbox,忽视checkbox,而不勾选,造成验证不通过. 所以想通过程序,在验证之前先判断textbox是否有值,如果有值,则自动勾选checkbox,再进行验证. 最初的代码如下: if ($("#ZYAreaBC").val(