Автозаполнение пользовательского интерфейса JQuery, значение после выбора (с помощью мыши) отличается от (с помощью клавиш со стрелками)

Я использую jQuery UI Autocomplete 1.8.1 с Jquery 1.4.2, и у меня есть эта проблема.

Во-первых, я не могу заставить значение поля ввода Autocomplete, ну это не большая проблема.

Но у меня с этим проблема:

Я не действую аналогичным образом, когда пользователь select выбирает выбор с помощью мыши вместо использования стрелок на клавиатуре. При использовании клавиатуры все в порядке, и значение появляется после выбора в текстовом поле ввода, но при использовании мыши оно остается со старым (набранным) значением, а не с выбранным.

Как это контролировать (значение текстового поля после выбора)? и почему есть разные поведения?

P.S: изменение значения поля ввода внутри функции select бесполезно, так как это невозможно сделать!


person Omar Al-Ithawi    schedule 16.06.2010    source источник


Ответы (5)


или вы можете добавить его в выбор

select: function( event, ui ) {
    $('#input').val(ui.item.value);
}
person somy    schedule 30.07.2012

У меня была аналогичная проблема с этим.

При использовании клавиатуры фокус из текстового поля теряется, но при щелчке фокус возвращается в текстовое поле.

Может быть, у вас что-то происходит в фокусе поля ввода, которое перезапускается?

person Jonny White    schedule 17.06.2010

Вы можете сделать что-то вроде этого:

$('#input').autocomplete({
   source: items,
   focus: function(event, ui) { var text = ui.item.value; 
   $('#input').val(text); 
   return false; 
   }
});

Наведение курсора мыши на элемент заполнит текстовое поле текущим значением, и когда вы щелкните по нему, значение уже будет отображаться в текстовом поле.

person Marlon Vidal    schedule 13.06.2012

Решение состояло в том, чтобы остановить событие с помощью preventDefault() внутри обратного вызова фокуса автозаполнения.

person palmic    schedule 25.11.2011

Я не мог решить это идеальным способом, поэтому мне удалось скрыть поле ввода поиска в select и отобразить другое настроенное div, которое скрыто при щелчке, фокус снова передается в поле поиска jQuery UI input.

person Omar Al-Ithawi    schedule 22.09.2010
comment
Я знаю, что это старо, но у меня похожая проблема. хотите поделиться jsfiddle? - person MatteS; 20.09.2012