У меня есть страница, использующая элементы управления KendoUI с привязкой к нокауту, и мне нужно использовать Enter вместо Tab, чтобы перемещаться по элементам управления.Используйте Enter as Tab с привязкой к нокауту и выпадающим списком KendoUI
мне удалось заставить его работать большой с помощью раствора размещены here по Damien Sawyer и повышения его с Shift-Enter, как предложено Andre Van Zuydam
ko.bindingHandlers.nextFieldOnEnter = {
init: function (element, valueAccessor, allBindingsAccessor) {
j$(element).on('keydown', 'input, select', function (e) {
var self = j$(this)
, form = j$(element)
, focusable
, next
;
var tabElements = 'input,a,select,button,textarea';
if (e.shiftKey) {
if (e.keyCode === 13) {
focusable = form.find(tabElements).filter(':visible');
prev = focusable.eq(focusable.index(this) - 1);
if (prev.length) {
prev.focus();
} else {
form.submit();
}
}
}
else
if (e.keyCode === 13) {
focusable = form.find(tabElements).filter(':visible');
var nextIndex = focusable.index(this) === focusable.length - 1 ? 0 : focusable.index(this) + 1;
next = focusable.eq(nextIndex);
next.focus();
return false;
}
});
} };
(мой код использует J $ вместо $ за JQuery, потому что проект использует также mootools, и я переопределял jquery как j $)
Однако у меня есть проблема с списками Dropdown для kendoUI. Проблема это не или элемент, поэтому он не получает фокуса (вместо этого это диапазон со специальными классами и unselecteable = "on").
Как обновить код привязки ко, чтобы установить фокус на выпадающее меню Enter? Он работает с Tab
Благодаря
Это звучит, как вам нужно настроить его немного для Кендо упасть. Можете ли вы опубликовать то, что ваш код выглядит в настоящее время, возможно, создать [скрипку] (http://jsfiddle.net)? – Goose
Да, но я не знаю, как это сделать. Я обновил сообщение с кодом и ссылкой на оригинальный ответ, где я получил решение от – bzamfir