当我将此代码放入我的控制台时,我最终在我的网页中显示了一个复选框:
$('body').append($('<input/>', {
type: 'checkbox',
value: "foo",
checked: false
}));
当我完全删除选中的attr时,不会选中该框:
$('body').append($('<input/>', {
type: 'checkbox',
value: "foo",
}));
...但我需要生成一组动态复选框,有些是已选中,有些则没有。什么attr / value创建正确的&#34;未选中&#34;状态?
更新:
我正在使用最新的Chrome。 jQuery版本3.2.1 代码在这个小提琴中按预期工作:https://jsfiddle.net/mmvunhL0/ 但不是在我的网站上......我想知道是否存在全局设置或触及复选框行为的内容。
答案 0 :(得分:3)
与复选框一起使用时,属性checked
是布尔属性。
如果它一直存在那么它就是真的。
<input type="checkbox" checked />
与
相同<input type="checkbox" checked="false" />
和
<input type="checkbox" checked="checked" />
没有检查它的唯一方法是没有checked
属性。
答案 1 :(得分:3)
您可以使用.prop或.attr作为复选框
<div id="body">
</div>
<script src="https://code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
<script>
var value = true;
$('#body').append($('<input/>', {
type: 'checkbox',
value: "foo",
}).prop('checked', value) ) ;
value = false;
$('#body').append($('<input/>', {
type: 'checkbox',
value: "foo",
}).prop('checked', value) );
</script>
&#13;
答案 2 :(得分:0)
您的两个代码都未经检查。因为,默认情况下,取消选中该复选框,如果要显式检查它,则将checked设置为true。
$('body').append($('<input/>', {
type: 'checkbox',
value: "foo",
checked: true
}));
如果您想随机使用,那么您可以使用Math:
$('body').append($('<input/>', {
type: 'checkbox',
value: "foo",
checked: Boolean(Math.round(Math.random()))
}));
此处需要布尔值。这是因为属性值严格依赖虚假值而不是真值或虚假价值。