【发布时间】:2017-08-17 23:57:14
【问题描述】:
目前我头疼不已,想知道为什么我似乎无法根据变量的值设置复选框的选中属性。
我正在尝试使页面可编辑。当用户选择编辑页面时,当前值将存储在 sessionStorage 中并被调用,以便在用户取消时将任何更改的值替换为其原始值。我已将原始检查值(真或假)存储在会话存储中,并且我正在尝试使用这些值来填充取消时的检查状态(这发生在由按钮单击触发的每个循环中)。下面的代码被简化为仅包含我认为是“问题”位的内容。
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);
以及我能想到的几乎所有其他组合。任何帮助将不胜感激。
注意:
我可以将变量转换为简单的真/假静态值,并且它可以正常工作。因此,如果我执行以下操作,它将根据我输入的内容将所有复选框设置为 false 或 true:
$('input[name="' + key +'"]').prop('checked', false);
【问题讨论】:
-
是
value一个字符串吗? -
好点...我认为这是一个字符串。我这样做是为了获得这个和我所有其他字段的值: var value = el.innerHTML.trim();
-
哦,伙计……就是这样。我为我花了这么多时间在这件事上摔跤感到有点羞愧。呃。如果您将评论作为答案,我会将其标记为已接受的答案。谢谢!