为什么当我设置为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?

下一篇: How to Create array Using checked ID's in MVC