3

我有这个代码示例:

http://jsfiddle.net/nickbuus/eUufc/15/

我试图使复选框具有正常的选中/取消选中行为。在我为每个复选框添加一个 onclick 事件之前,它工作正常。此 onclick 事件调用此方法:

 self.saveIsMeasureChecked = function (item) 

在此方法结束后,复选框在被选中/取消选中之前恢复到其旧状态 - 这使得您看起来根本无法更改复选框的状态。

4

1 回答 1

4

您需要true从单击事件处理程序返回以触发浏览器默认行为(另请参阅文档允许默认单击操作部分)

self.saveIsMeasureChecked = function (item) {
    //Do something
    return true;
};

演示JSFiddle。

但是,在 Knockout 中似乎有些地方不太正确,因为当您使用value绑定和click复选框上的绑定时,您需要第一次单击两次才能更改复选框。

但是,如果您使用attr绑定来设置值,那么一切似乎都可以。

<input name="cbIsMeasureChecked" type="checkbox" 
       data-bind="attr: {value: foodId}, 
       checked: isMeasureChecked, 
       click: $root.saveIsMeasureChecked" />

演示JSFiddle。

于 2013-06-11T07:53:33.653 回答