2

我的页面中有很多剑道组合框。我在清除值(“”)时遇到了一些问题;我正在使用这样的代码:

$('#clearAll').click(function () {       
        $("#params input").val("");        
    });

有了这个,我试图清除我页面上所有输入的值。但是,这只会清除可见值,当我检查视图模型中的值时,它们仍然没有改变。

所以我想,需要触发更改事件,所以我使用了:

$("#params input").trigger("change");

但还是一样。我不太了解剑道的 MVVM 中的值绑定规则。这是正常行为还是错误?

4

1 回答 1

4

如果您坚持 MVVM 模式,那么您应该做的是更改 ViewModel 上的值,而不是 View(组合框)。

清除按钮(在视图上)-> 调用“清除”函数(在 ViewModel 上)-> 调用 viewmodel.set("field", "") -> 触发组合框的更新(在视图上)


如果你想按照你现在的方式做,那么不要调用 jQuery 的.val()函数,而是尝试使用 Kendo ComboBox 的.value()函数:http ://docs.kendoui.c​​om/api/web/combobox#value

所以可能尝试将您的代码更改为:

$("#params input").data().kendoComboBox.value("");
于 2012-12-16T00:17:41.463 回答