ko binding for checkbox:从代码中更改'checked'attr不会更改observable字段

时间:2015-03-11 15:50:44

标签: javascript jquery checkbox knockout.js breeze

我在html的复选框绑定到observable-field(breeze实体的字段)。

   <input id="chk1" type="checkbox" data-bind="checked: data().isBirthday"/>

绑定效果很好: 当我写代码时:

     data().isBirthday(true);

复选框将被选中。

当我写代码时

     data().isBirthday(false);

复选框变为未选中状态。

当我通过单击鼠标选择复选框时 - 可观察字段的值为true。 (或者当我用鼠标取消选中时 - 它的值为false)。

有时,我需要通过代码更改复选框的checked属性,特别是使用jquery的retrive复选框。 (由于任何原因,我无法通过可观察的领域来实现)。

我做:

    var control = $('#chk1')[0];
    control.checked = false;

但这不会改变绑定的observable-field的值。它继续保持真实值。

我试图改变变化事件:

   $(control).change()

没有帮助。 那么,我该怎么办?

以下是一个例子:

https://jsfiddle.net/kevinvanlierde/72972fwt/4/

1 个答案:

答案 0 :(得分:0)

我们可以看到HTML代码吗?

尝试$('#chk1')。prop(“checked”,false);