Javascript 复选框输入计算为选中,尽管未设置选中
所以我试图弄明白为什么下面的计算结果是真的,我一直认为如果Javascript 复选框输入计算为选中,尽管未设置选中,javascript,css,html,Javascript,Css,Html,所以我试图弄明白为什么下面的计算结果是真的,我一直认为如果checked属性被省略,那么它就不会计算为checked。我已经仔细检查了下面的内容,以确保状态不会因为一些JS而改变。在Chrome、Safari和Firefox上也进行了验证,所有这些都会通过复选框进行评估。你知道为什么吗 <input type="checkbox" name="shipping[same_as_billing]" id="shipping:same_as_billing" value="1" onclick
checked
属性被省略,那么它就不会计算为checked。我已经仔细检查了下面的内容,以确保状态不会因为一些JS而改变。在Chrome、Safari和Firefox上也进行了验证,所有这些都会通过复选框进行评估。你知道为什么吗
<input type="checkbox" name="shipping[same_as_billing]" id="shipping:same_as_billing" value="1" onclick="shipping.setSameAsBilling(this.checked);">
您可以将简单的onclick函数设置为。其中
this.checked
设置复选框的状态
是否选中
功能设置计费(状态){
控制台日志(状态);
如果(状态==真){
console.log('checked')
返回true;
}否则{
console.log('未选中')
返回false;
}
}
为您的复选框创建控制台日志,如下所示:
<input type="checkbox" onclick="console.log(this.defaultChecked)"/>
摘自W3C:
defaultChecked属性返回已检查属性的默认值
属性
如果默认选中复选框,则此属性返回true,
否则返回false
如果最初未选中,则第一次单击时应为true(因为它随后被选中),然后为false,然后为true,等等。defaultChecked属性将告诉您它最初是否被选中(即,是否设置了checked属性)。在Firefox中尝试简化的
似乎会产生预期的结果。第一次单击会生成反映其新选中状态的true
,随后的单击同样会在false
和true
之间循环。如果您希望出现其他行为,则必须指定所需的结果。感谢@RobG-我可以看到defaultChecked
属性设置为false,因此随后一定会有某些内容影响状态,尽管在检查DOM时未明显设置/创建checked属性
this.defaultChecked = false;