【问题标题】:ko binding for checkbox: change 'checked' attr from code not change the observable field复选框的 ko 绑定:从代码更改“已检查”属性不更改可观察字段
【发布时间】:2015-05-13 12:26:27
【问题描述】:

我在 html 中有一个复选框,它绑定到 observable-field(微风实体的字段)。

   <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;

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

我试图触发 change 事件:

   $(control).change()

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

这是一个例子:

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

【问题讨论】:

  • @AleJuliet 和您用于(取消)选中该框的代码都应该可以工作(经过测试)。还有其他东西阻止它工作,你没有在这里包括。或许提供带有完整代码的fiddle。
  • 我已经添加了jsFiddle,但是,它没有成功正确加载淘汰赛库。如果你能为我做......谢谢!
  • 我已经用正确的链接编辑了你的小提琴以加载 KO。如您所见,没有问题,并且可以正常工作。将来您不应添加直接下载链接,而是从 CDN 获取它们,例如 Google's 或 cdnjs。

标签: javascript jquery checkbox knockout.js breeze


【解决方案1】:

我们可以看到html代码吗?

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

【讨论】:

    猜你喜欢
    • 2017-08-16
    • 2014-11-02
    • 2010-11-04
    • 1970-01-01
    • 1970-01-01
    • 2018-02-15
    • 1970-01-01
    • 1970-01-01
    • 2020-08-31
    相关资源
    最近更新 更多