【问题标题】:How to get value of Kendo UI AutoComplete onKeyUp inside ViewModel如何在 ViewModel 中获取 Kendo UI AutoComplete onKeyUp 的值
【发布时间】:2014-02-02 08:27:26
【问题描述】:

我试图在用户键入时获取 Kendo UI AutoComplete 的值,以便我可以将该查询发送到服务器以过滤结果。更改事件仅触发 onBlur 而不是 keyup/down/press。 data-value-change 绑定似乎也不适用于这种情况。

有没有办法在 ViewModel 中实现这一点?

请参阅下面的代码作为工作 jsFiddle here。 您会注意到数据值更改适用于普通输入,但不适用于自动完成。

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

【问题讨论】:

    标签: jquery kendo-ui


    【解决方案1】:

    我遇到了同样的问题。

    我设法用另一个可观察的属性来处理它,仅用于显示目的。

    但是每个 KeyUp 事件都会更新主要的 observable 属性。

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

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

    【讨论】:

      【解决方案2】:

      根据其他网站和博客上的一些用户响应,自动完成小部件不支持此功能。

      【讨论】:

        【解决方案3】:

        嗯,这是一种肮脏的方法,但对我有用:

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

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

        【讨论】:

          猜你喜欢
          • 2020-02-28
          • 2016-06-20
          • 1970-01-01
          • 1970-01-01
          • 2013-12-27
          • 1970-01-01
          • 2011-03-23
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多