【发布时间】:2013-03-31 03:33:32
【问题描述】:
当点击表单重置按钮时,Knockout 不会更新 observables。
HTML:
<form>
<input type="text" data-bind="value: test" />
<input type="reset" value="reset" />
</form>
<p data-bind="text: test"></p>
JS:
function ViewModel() {
this.test = ko.observable("");
}
ko.applyBindings(new ViewModel());
显然输入框的更改事件没有被触发,如以下 jQuery 测试所示: http://jsfiddle.net/LK8sM/4/
如果重置按钮未触发更改事件,我们将如何强制所有绑定到表单输入的可观察对象进行更新,而无需手动指定它们?
使用 jQuery 来查找表单内的所有输入并触发更改事件很容易,但假设我们有一个仅淘汰赛控制的表单。
【问题讨论】:
-
您反对将重置实现为视图模型方法吗?正如您所指出的,这似乎是与
resets 不触发更改相关的更大问题,这可能是一个重大问题。 -
如果视图模型中的方法可以重置所有可观察对象,而无需手动列出它们,那么它将起作用。但我真的只想重置绑定到输入的可观察对象。
标签: forms knockout.js