我有这个代码示例:
http://jsfiddle.net/nickbuus/eUufc/15/
我试图使复选框具有正常的检查/取消选中行为。它工作正常,直到我为每个复选框添加一个onclick事件。此onclick事件调用此方法:
self.saveIsMeasureChecked = function (item)
在此方法结束后,复选框将在检查/取消选中之前返回其旧状态 - 这使得您看起来根本无法更改checbox的状态。
答案 0 :(得分:4)
您需要从点击事件处理程序返回true
以触发浏览器默认行为(另请参阅documentation:允许默认点击操作部分)
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" />