以下代码是我为复选框编写的代码。不确定为什么这不会显示已检查的值,即使它从我的JS文件中正确显示。
<input type="checkbox"
data-bind="attr: { value: person.id}, checked: $root.chosenPerson">
如果chosenPerson
包含两个值,则应在复选框中选中这些值。这不会发生。
我也尝试过:
<input type="checkbox"
data-bind="attr: { value: person.id}, checked: $root.chosenPerson">
我也尝试过:
<input type="checkbox"
data-bind="attr : { checked:$root.chosenPerson }, value : person.id" />
在chosenPerson
&#34;已检查&#34;
请提出解决方案。
答案 0 :(得分:4)
您的绑定应返回true,因此请将其更改为 -
<input type="checkbox" data-bind="attr: { value: person.id}, checked: $root.chosenPerson() === $data">
其中selectedPerson等于input元素的上下文。如果元素不在人的上下文中,只需执行
<input type="checkbox" data-bind="attr: { value: person.id}, checked: $root.chosenPerson() === person()">
答案 1 :(得分:3)
如果chosenPerson
数组包含整数,则复选框的值也必须是整数。使用attr/value
绑定是不可能的,因为它只是设置了元素的value
属性,它始终是一个字符串。相反,您应该使用checkedValue
绑定,它可以绑定任何类型的值。
<input type="checkbox" data-bind="checkedValue: person.id, checked: $root.chosenPerson">