我有一个非常简单的 jquery 需要检查从 ajax 调用返回的布尔值,并设置一个复选框来检查它是否为真。
console.log("loc: " + r.location.defaultLocation);
if( r.location.defaultLocation == true ) {
$('#loc-default').attr('checked',true);
}
这在打开模式表单的 onclick 函数中运行 - 如果返回的位置信息表明这是默认位置,则应选中该复选框。我们在一个页面上有 5 个这样的位置 - 即用户可以单击的 5 个位置。
我遇到的是,即使r.location.defaultLocation
返回 false(根据 console.log 行),该复选框仍在检查中。我究竟做错了什么?
对于那些坚持真/假必须是字符串而不是布尔值的人:
这是结果console.info(typeof(r.location.defaultLocation));
这是 的结果console.dir(r)
,如果它有帮助的话。(group
由于它是敏感信息而模糊。)
发现问题
显然,jquery 会记住#loc-default
在第一个标记为已检查之后已检查。我在函数中添加了一个 else,现在它可以工作了:
if( r.location.defaultLocation == true ) {
$('#loc-default').attr('checked',true);
}
else {
$('#loc-default').attr('checked', false);
}