Как отключить использование клавиши Tab для выбора текущего/выделенного элемента? Я только хочу, чтобы Enter заполнил его.
jQuery UI Autocomplete: отключить автозаполнение вкладок?
Ответы (3)
пример Райана с размещением отмены в событии keypress
не У меня это не работает, но мы можем поместить его в опцию select
автозаполнения:
select: function(e, ui) {
if(e.keyCode === 9) return false;
// other code...
}
Когда вы используете модификатор .autocomplete() в jquery-ui, он устанавливает обработчик нажатия клавиши для вашего текстового поля ввода следующим образом. self.menu.select устанавливает текстовое поле на текущее выделенное значение в списке автозаполнения.
.bind( "keydown.autocomplete", function( event ) {
...
switch( event.keyCode ) {
...
case keyCode.TAB:
if ( !self.menu.active ) {
return;
}
self.menu.select( event );
break;
...
}
}
Итак, что вам нужно сделать, это убедиться, что этот обработчик не вызывается. Я смог сделать это, добавив обработчик нажатия клавиши, который возвращает false из обработчика, если нажатие клавиши TAB.
$( "#tags" ).autocomplete({
source: availableTags
});
$("#tags").keypress(function(e){
if(e.keyCode == keyCode.TAB) {
e.stopImmediatePropagation();
}
});
Вы можете увидеть результат здесь.
autoFocus
(выбирает первый элемент) вроде уже не работает...
- person mpen; 24.07.2011
Вкладка на самом деле не выбирает текущий элемент, она перемещает курсор к следующему элементу, доступному для вкладки. Итак, что вам нужно сделать, это отключить вкладку для автозаполнения:
Заблокировать клавишу табуляции с помощью javascript?
Что-то вроде этого работает для меня, возможно, вам придется изменить его еще немного.
По сути, вы фиксируете событие нажатия клавиши перед передачей его обработчику нажатия клавиши автозаполнения. Когда вы захватите его, вы можете делать все, что хотите (пройти его или нет).