为什么当我设置为false时检查新创建的复选框?
当我将这段代码放入控制台时,我的网页中出现一个复选框:
$('body').append($('<input/>', {
type: 'checkbox',
value: "foo",
checked: false
}));
当我删除选中的属性时,该框不会被检查:
$('body').append($('<input/>', {
type: 'checkbox',
value: "foo",
}));
...但我需要一组动态的复选框来生成,一些被选中,一些则不被选中。 什么attr / value创建正确的“未选中”状态?
更新:
我正在使用最新的Chrome。 jQuery版本3.2.1代码在这个小提琴中按照预期工作:https://jsfiddle.net/mmvunhL0/但不是在我的网站上...我想知道是否有全局设置或触摸复选框行为的东西。
您可以使用.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>
与复选框一起使用时, checked
的属性是布尔属性。
如果它存在,那么它是真的。
<input type="checkbox" checked />
是相同的
<input type="checkbox" checked="false" />
和
<input type="checkbox" checked="checked" />
唯一没有检查的方法是根本没有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()))
}));
这里布尔值是必要的。 这是因为财产价值严格地寻找虚假价值的真实性,而不是真实价值或虚假价值。
链接地址: http://www.djcxy.com/p/56029.html上一篇: Why is a newly created checkbox checked when I set checked to false?