jQuery复选框操作问题

时间:2013-11-14 12:15:43

标签: javascript jquery checkbox

我有条件必须选中或取消选中输入复选框,但它不起作用,我不知道该怎么做。我搜索并尝试了一些jquery复选框操作选项,但其中任何一个都可以工作。使用控制台日志消息,我知道条件工作和输入复选框是可访问的。拜托,帮我一把。

if(parseInt(permiso_acceso)==1) {
   var valor = $('#permiso_acceso').val();
   console.log('Must be checked '+valor);//It works
   $('#permiso_acceso').attr('checked',true);
} else {
   var valor = $('#permiso_acceso').val();
   console.log('Must be unchecked '+valor);//It works
   $('#permiso_acceso').attr('checked',false);

}

5 个答案:

答案 0 :(得分:2)

试试这个

jQuery 1.6 +

使用.prop()函数:

$('.myCheckbox').prop('checked', true);
$('.myCheckbox').prop('checked', false);

如果您想检查是否选中了复选框:

$('form #mycheckbox').is(':checked');

答案 1 :(得分:1)

代替.attr,使用.prop jquery方法(包含在jquery1.6中)。以下是详细讨论link

if(parseInt(permiso_acceso)==1) {
   var valor = $('#permiso_acceso').val();
   console.log('Must be checked '+valor);//It works
   $('#permiso_acceso').prop('checked', true);
} else {
   var valor = $('#permiso_acceso').val();
   console.log('Must be unchecked '+valor);//It works
   $('#permiso_acceso').prop('checked', false);
}

Try This in jsfiddle

答案 2 :(得分:0)

val()将始终返回valueradio元素的checkbox属性,无论是否勾选。代码的逻辑是正确的。

我认为问题是由于permiso_acceso的值未设置为所选的checkbox值。

答案 3 :(得分:0)

它发生了,因为属性“已检查”重新查询值“已检查”,而不是真或假

答案 4 :(得分:0)

根据我的理解,您希望根据条件选中并取消选中复选框。 看看这个小提琴

var permiso_acceso = 1;
if(permiso_acceso==1) {
   var valor = $('#permiso_acceso').val();
   console.log('Must be checked '+valor);//It works
   $('#permiso_acceso').attr('checked',true);
} else {
   var valor = $('#permiso_acceso').val();
   console.log('Must be unchecked '+valor);//It works
   $('#permiso_acceso').attr('checked',false);
}

http://jsfiddle.net/Zhrt3/

尝试将变量permiso_acceso切换为1和0.

其工作