我有条件必须选中或取消选中输入复选框,但它不起作用,我不知道该怎么做。我搜索并尝试了一些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);
}
答案 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);
}
答案 2 :(得分:0)
val()
将始终返回value
或radio
元素的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);
}
尝试将变量permiso_acceso切换为1和0.
其工作