我有这个代码示例:
http://jsfiddle.net/nickbuus/eUufc/15/
我试图使复选框具有正常的选中/取消选中行为。在我为每个复选框添加一个 onclick 事件之前,它工作正常。此 onclick 事件调用此方法:
self.saveIsMeasureChecked = function (item)
在此方法结束后,复选框在被选中/取消选中之前恢复到其旧状态 - 这使得您看起来根本无法更改复选框的状态。
我有这个代码示例:
http://jsfiddle.net/nickbuus/eUufc/15/
我试图使复选框具有正常的选中/取消选中行为。在我为每个复选框添加一个 onclick 事件之前,它工作正常。此 onclick 事件调用此方法:
self.saveIsMeasureChecked = function (item)
在此方法结束后,复选框在被选中/取消选中之前恢复到其旧状态 - 这使得您看起来根本无法更改复选框的状态。
您需要true
从单击事件处理程序返回以触发浏览器默认行为(另请参阅文档:允许默认单击操作部分)
self.saveIsMeasureChecked = function (item) {
//Do something
return true;
};
但是,在 Knockout 中似乎有些地方不太正确,因为当您使用value
绑定和click
复选框上的绑定时,您需要第一次单击两次才能更改复选框。
但是,如果您使用attr
绑定来设置值,那么一切似乎都可以。
<input name="cbIsMeasureChecked" type="checkbox"
data-bind="attr: {value: foodId},
checked: isMeasureChecked,
click: $root.saveIsMeasureChecked" />