2014-02-02 2 views
1

Я пытаюсь получить значение автозаполнения Kendo UI в качестве пользователя, поэтому я могу отправить этот запрос на сервер для фильтрации результатов. Событие изменения только срабатывает вкл., А не клавиша/вниз/нажатие. Связывание с изменением значения данных также, похоже, также не работает для этого сценария.Как получить значение Kendo UI AutoComplete onKeyUp внутри ViewModel

Есть ли способ для достижения этой цели в рамках 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); 

ответ

0

Согласно отзывам некоторых пользователей на других сайтах и ​​блогах, это не поддерживается виджетами автозаполнения.

1

Я прошел через ту же проблему.

Мне удалось обработать его с другим наблюдаемым свойством для простоты отображения.

Но основное наблюдаемое свойство будет обновляться на каждом событии KeyUp.

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

Я знаю, что мы можем обновить Основное свойство на KeyUp при переплетены с основным свойством, но это может вызвать неправильное поведение поведение каретки.

0

Ну, это грязный способ, но работал для меня:

после инициализации виджета, настроить слушателя:

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

}) 
Смежные вопросы