如何获得内部视图模型剑道UI自动完成的onkeyup的价值(How to get value of

2019-10-19 07:02发布

我试图让一个剑道UI自动完成的值作为用户类型,因此我可以发送查询到服务器来筛选结果。 变更事件仅触发的onblur而不是KEYUP /下/按。 该数据值改变也结合似乎并不在此方案中工作,要么。

反正有从视图模型内实现这一目标?

请参阅下面的代码作为工作在这里的jsfiddle 。 你会发现一个香草输入而不是对自动完成数据值改变的作品。

<div id="view">
<input data-value-update="keyup" 
       data-bind="value: inputValue"
       data-placeholder="text input" />

 <input data-role="autocomplete"
        data-placeholder="autocomplete"
        data-value-primitive="true"
        data-text-field="t"
        data-bind="source: data, value: acValue" />

</div> 



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);

Answer 1:

我经历同样的问题去了。

我设法与具有只是显示另一个目的观察特性来处理它。

但主要的显着特性将在每个KeyUp事件进行更新。

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

我知道我们可以在与主属性绑定上KEYUP更新主要性能,但这样会导致不良的行为插入符的行为。



Answer 2:

据其他网站和博客,一些用户反应,这是不支持自动完成构件。



Answer 3:

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

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

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

})


文章来源: How to get value of Kendo UI AutoComplete onKeyUp inside ViewModel