我有一个非常简单的jQuery代码片段,需要检查从ajax调用返回的布尔值,并在其为true时将复选框设置为选中状态。
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行),复选框仍然被选中。我做错了什么?
对于那些坚持true/false必须是字符串而不是布尔值的人:
这是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);
}
if( r.location.defaultLocation ) {
。这与您的问题无关,但当我看到== true
时,感到很烦 :P - tckmnprop
代替attr
。 - ThiefMasterr.location.defaultLocation
是布尔类型而不是字符串吗? - emco