0

我有一个必须选中或取消选中输入复选框的条件,但它不起作用,我不知道该怎么做。我已经搜索并尝试了一些 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);

}

4

5 回答 5

2

尝试这个

jQuery 1.6+

使用 .prop() 函数:

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

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

$('form #mycheckbox').is(':checked');
于 2013-11-14T12:16:53.233 回答
1

代替.attr,使用.propjquery方法(包含在jquery1.6中)。这里是详细的讨论链接

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);
}

在 jsfiddle 中试试这个

于 2013-11-14T12:21:09.540 回答
0

val()将始终返回一个or元素的value属性,无论它是否被勾选。您的代码逻辑是正确的。radiocheckbox

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

于 2013-11-14T12:17:04.970 回答
0

它发生了,因为属性“checked”请求值“checked”,而不是 true 或 false

于 2013-11-14T12:17:29.157 回答
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。

它的工作

于 2013-11-14T12:31:58.473 回答