jquery 复选框上的 .prop() 不起作用

jquery .prop() on checkbox not working

目前我正在用头撞墙想知道为什么我似乎无法根据变量的值设置复选框的选中 属性。

我正在尝试使页面可编辑。当用户选择编辑页面时,当前值将存储在 sessionStorage 中并被调用,以便在用户取消时用原始值替换任何更改的值。我已将原始检查值(真或假)存储在会话存储中,并且我正在尝试使用这些值来填充取消时的检查状态(这发生在通过单击按钮触发的每个循环中)。下面的代码被简化为只包含我认为的 "problem" 位。

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

对于 boolean 属性,例如 checked,您必须使用布尔值。由于您使用的是字符串,因此该值始终为真。

$(element).prop ("checked", false) //false
$(element).prop ("checked","false") //true