因此HTML规范指出,您应该在checked
标记中添加<input type="checkbox">
属性,以将其标记为已选中。但我只有一个布尔true
或false
值。
按照设计,我不能在解析为html之前将任何逻辑添加到布尔值:(。
是否可以使用html或js在加载时检查带有布尔值的Checkbox?我尝试了以下操作,但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%
中的true或false值来正确地使用javascript检查框(或者更好,使用html。)。我可以在html标记的任何位置使用%IsValide%
。例如:
<input type="checkbox" onload="javascript:this.checked=%IsValide%" />
但我无法在解析为HTML之前添加逻辑:
if(%IsValide%) {
%IsValide%="checked";
}
else {
%IsValide%="";
}
答案 0 :(得分:4)
我试图了解你的要求。我认为你可以用一些简单的javascript完成它:
document.getElementById("yourCheckBoxId").checked = false; //this case it sets checked to false you can also do true
在页面加载时检查它:
<body onload='document.getElementById("yourCheckBoxId").checked = true;'>
或避免body的onload属性进行检查:
<input type="checkbox" id="yourCheckBoxId" checked>
然后你只需用javascript更改它。
我的另一个猜测是你想要更改复选框的值?你是?在我的回答下面发表评论,说我不明白你在问什么。希望这可以帮助!以下是我的参考资料来源:http://www.w3schools.com/jsref/prop_checkbox_checked.asp
答案 1 :(得分:0)
如果贵公司的应用程序设置了checked="true"
或checked="false"
,则无关紧要,因为checked
是一个布尔属性,并且&#34;存在此布尔属性表示默认选择控件&#34;,并始终选中复选框。
这应该解决它:
$('input[checked="false"]').prop('checked',false)
<强> jsFiddle example 强>
答案 2 :(得分:0)
我认为你最终会以错误的方式解决这个问题,但如果我没有没有其他选择就像你说的那样,我认为你最好的结局(表现明智)将在您的输入中添加一个类(true或false)
<input type="checkbox" class="tocheck-true"></input>
<input type="checkbox" class="tocheck-false"></input>
然后找那个班:
$("input.tocheck-true").prop("checked",true);
因为我们只搜索具有该css类的输入,所以这应该表现得非常好。
但是,再次,这似乎是一个完整的黑客。如果您要问&#34;我怎样才能使用胶带将引擎固定在我的车身上,&#34;也许你应该停下来看看你是否应该询问这个问题。 :)