KO 绑定复选框:从代码更改“选中”属性,不更改可观察字段

ko binding for checkbox: change 'checked' attr from code not change the observable field

本文关键字:属性 字段 观察 复选框 绑定 KO 代码 选中      更新时间:2023-09-26

我在html上有绑定到可观察字段(微风实体字段)的复选框。

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

从牵引侧开始,绑定效果很好:当我在代码上编写时:

     data().isBirthday(true);

复选框变为选中状态。

当我在代码上写

     data().isBirthday(false);

该复选框将变为未选中状态。

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

有时,我需要通过代码更改复选框的选中属性,特别是通过使用jquery检索复选框。(由于任何原因,我无法通过可观察字段来做到这一点)。

我愿意:

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

但这不会更改绑定的可观察字段的值。它继续保持真正的价值。

我试图对更改事件进行triiger:

   $(control).change()

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

下面是一个示例:

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

我们可以看到 html 代码吗?

尝试 $('#chk1').prop("checked", false);