Я использую плагин автозаполнения jQuery.Я изменил это, чтобы поддержать множественный выбор из меню результатов с помощью флажка.Для меня значение в поле автозаполнения должно обновляться только тогда, когда пользователь нажимает только на один флажок.
- Когда мышь находится над меню результатов, значение в текстовом поле автозаполнения неполучать обновления.- Поведение по умолчанию.
- Когда навигация по результату поиска осуществляется с помощью клавиши ВВЕРХ / ВНИЗ, значение соответствующей строки (той, которая находится в фокусе) обновляется.Я преодолел это, возвращая false из функции фокуса.
- Проблемная ситуация - пользователь выбрал строку с помощью мыши, затем соответствующее значение строки обновляется в текстовом поле автозаполнения.После того, как этот пользователь перемещается по результатам, используя клавишу UP / DOWN, значение в текстовом поле автозаполнения заменяется значением строки, которая в данный момент находится в фокусе, с помощью клавиши UP / DOWN.
Iзагрузили изображение, объясняющее то же самое
На изображении строка, выделенная красным цветом, представляет собой ту, которая была выбрана с помощью мыши, а выделенная желтым цветом - текущая строка в фокусе в видеРезультат нажатия клавиши ВНИЗ.
Дайте мне знать, как этого добиться.
$("#name")
.keydown(function(event)
{
//code for highlighting
}
).autocomplete({
minLength: 2,
multiple: true,
source: function(request,response)
{
//fetch required data, format: [{name:" ", id: " "},{name:" ", id: " "}]
},
select: function(event,ui)
{
var terms = split( this.value );
terms.pop();
terms.push( ui.item.value);
terms.push( "" );
this.value = terms.join( " ," );
return false;
},
focus: function(event,ui)
{
return false;
}
}).data("autocomplete")._renderMenu = function(menuUI,items)
{
//change the rendering to display checkbox for each result.
//on clicking on the checkbox, its value will be appended to autocomplete's textbox
};
});