【发布时间】:2015-01-09 10:40:27
【问题描述】:
因此,HTML 规范说您应该在 <input type="checkbox"> 标记中添加一个 checked 属性以将其标记为已选中。但我只有一个布尔值 true 或 false 值。
按照设计,在布尔值被解析为 html 之前,我不能向它添加任何逻辑 :(。
是否可以仅使用 html 或 js 在加载时检查具有布尔值的复选框?我尝试了以下,但onload 似乎没有触发:
<input type="checkbox" onload="javascript:this.checked=true" />
我知道我可以在 jQuery 中做这样的事情:
$("[checked='false']").prop('checked',false)
我正在寻找一种优雅的方法来解决它。这必须解析整个 DOM-Tree 并且会减慢我的页面速度。
编辑(试图解释):
在我的公司中,存在一个按设计执行以下操作的应用程序:
<input type="checkbox" checked="%IsValide%" >
服务器会自动将%IsValide% var 替换为数据库值。这里真假。但是,即使值为 false,也始终选中该复选框。我知道这是因为 html5 的设计:checked="true" 和 checked="false" 会将复选框始终标记为已选中。
现在我正在寻找一种解决方案,使用来自%IsValide% 的真值或假值来使用 javascript(或者更好的是,使用 html。)正确选中该框。我可以在 html 标签的任何位置使用%IsValide%。例如:
<input type="checkbox" onload="javascript:this.checked=%IsValide%" />
但我不能在它被解析为 HTML 之前添加逻辑,如下所示:
if(%IsValide%) {
%IsValide%="checked";
}
else {
%IsValide%="";
}
【问题讨论】:
-
所以
<input type="checkbox" checked />不适合你? -
抱歉,我仍然不清楚问题/问题是什么。
-
无论您从数据库中获得什么,都在服务器端,对吧?然后就可以使用服务端逻辑了。
-
为什么不能“添加逻辑”?如果你不能用它来做这样合乎逻辑的事情,为什么还要用 JavaScript/jQuery 标记这个问题?
-
我很想知道将 %IsValid% 替换为 true 的是什么?您的服务器端语言是什么?
标签: javascript jquery html