Поведение автозаполнения клавиш ВВЕРХ / ВНИЗ - PullRequest
1 голос
/ 22 декабря 2011

Я использую плагин автозаполнения jQuery.Я изменил это, чтобы поддержать множественный выбор из меню результатов с помощью флажка.Для меня значение в поле автозаполнения должно обновляться только тогда, когда пользователь нажимает только на один флажок.

  1. Когда мышь находится над меню результатов, значение в текстовом поле автозаполнения неполучать обновления.- Поведение по умолчанию.
  2. Когда навигация по результату поиска осуществляется с помощью клавиши ВВЕРХ / ВНИЗ, значение соответствующей строки (той, которая находится в фокусе) обновляется.Я преодолел это, возвращая false из функции фокуса.
  3. Проблемная ситуация - пользователь выбрал строку с помощью мыши, затем соответствующее значение строки обновляется в текстовом поле автозаполнения.После того, как этот пользователь перемещается по результатам, используя клавишу 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
 };
 });
...