目前我的头撞墙,想知道为什么我似乎无法根据变量的值设置复选框的checked属性。
我试图让页面可编辑。当用户选择编辑页面时,当前值将存储在sessionStorage中并被调用,以便在用户取消时将任何更改的值替换为其原始值。我已经在会话存储中存储了原始选中的值(true或false),我尝试使用这些值在取消时填充检查状态(这发生在按钮点击触发的每个循环中)。以下代码简化为仅包含我认为的问题"位。
var value = sessionStorage.getItem(key);
console.log(key + ' = ' + value); //produces the correct key/value pair
$('input[name="' + key +'"]').prop('checked') === value;
复选框始终恢复为当前值。
这是我尝试过的:
$('input[name="' + key +'"]').prop('checked', value);
$('input[name="' + key +'"]').prop(':checked', value);
$('input[name="' + key +'"]').attr('checked', value);
和我可能想到的几乎所有其他组合。任何帮助将不胜感激。
注意:
我可以将变量分解为一个简单的true / false静态值,并且它可以正常运行。因此,如果我执行以下操作,它将根据我输入的内容将所有复选框设置为false或true:
$('input[name="' + key +'"]').prop('checked', false);
答案 0 :(得分:1)
对于boolean
等checked
属性,您必须使用布尔值。由于您使用的是字符串,因此值始终为真。
$(element).prop ("checked", false) //false
$(element).prop ("checked","false") //true