Я пытаюсь расширить управление автозаполнением kendo-ui: я хочу, чтобы поиск начинался, когда пользователь нажал кнопку ввода, поэтому в основном я должен проверить ввод пользователя на событие keydown. Я попытался поймать KeyDown событие с этим кодом:kendo-ui autocomplete extend
(function($) {
ui = kendo.ui,
Widget = ui.Widget
var ClienteText = ui.AutoComplete.extend({
init: function(element,options) {
var that=this;
ui.AutoComplete.fn.init.call(this, element, options);
$(this).bind('keydown',function(e){ console.log(1,e); });
$(element).bind('keydown',function(e){ console.log(2,e); });
},
options: {
[...list of my options...]
},
_keydown: function(e) {
console.log(3,e);
kendo.ui.AutoComplete.fn._keydown(e);
}
});
ui.plugin(ClienteText);
})(jQuery);
Ни один из переплетены событий не получает называется, только _keydown, а затем я делаю что-то неправильно и не может вызвать автозаполнения «нормальный» KeyDown мероприятие. Я видел много примеров, которые расширяют базовый виджет, а затем создают составной виджет, но я не заинтересован в этом, я хочу только добавить функциональность существующего виджета. Может ли кто-нибудь показать мне, что я делаю неправильно?
Спасибо!
Выполнение этого в функции инициализации: '$ (элемент) .bind ('KeyDown', функция (е) { вар KControl = $ (это) .data ('kendoClienteText'); , если (e.which === 13) { kcontrol.setDataSource (datasource_clientes); kcontrol.search ($ (это) .val());} еще { kcontrol.setDataSource (нуль); } }); ' на самом деле делать то, что я хочу, но я не уверен, что это правильный способ сделать это. Любое предложение приветствуется! (извините за форматирование кода) –
Я до сих пор не вижу в вашем коде, как вы прекращаете «официальный» кендо-автозаполнение контрольного вызова? – Vojtiik
$ (element) .bind ('keydown', function (e) {...}) сделать магию, я поставлю код, который фактически работает в ответе внизу. –