如何在ViewModel中获取Kendo UI AutoComplete onKeyUp的价值

我试图获取Kendo UI AutoComplete的值作为用户类型,以便我可以将该查询发送到服务器以过滤结果。 更改事件仅触发布尔而不是键盘/关闭/按下。 数据值更改绑定似乎也不适用于此方案。

无论如何都要在ViewModel中实现这一目标吗?

请在此处查看下面的代码作为工作jsFiddle 。 您会注意到数据值更改适用于vanilla输入,但不适用于自动完成。

var viewModel = kendo.observable( { inputValue: '', acValue: '', data: new kendo.data.DataSource([ {name: 'John', age: 20 }, {name: 'John 1', age: 201 }, {name: 'John 2', age: 202 }, {name: 'John 3', age: 203 }, ]), onChange: function() { console.log('change'); } }); viewModel.bind('change', function(e) { alert(e.field + ' changed to ' + this[e.field]); }); kendo.bind($("#view"), viewModel);

我经历了同样的问题。

我设法处理它有另一个可观察的属性只是为了显示目的。

但主要的可观察属性将在每个KeyUp事件上更新。

 $('textarea').keyup(function () { viewModel.set("megaViewModel.ProductionNotes", $(this).val()); }); 

我知道我们可以在使用main属性绑定时更新keyup上的Main Property,但这会导致Caret行为不正常。

根据一些用户对其他网站和博客的回复,自动完成小部件不支持此function。

嗯,这是肮脏的方法,但为我工作:

初始化小部件后,设置监听器:

 $($("#input").data("kendoAutoComplete").element[0]).on('keyup',function(){ //do your stuff here })