Изменения селектора автозаполнения и jquery во время выполнения - PullRequest
0 голосов
/ 23 мая 2011

Пожалуйста, посмотрите на следующий код автозаполнения.

   $(document).ready(function(){
        $("#the_input").autocomplete("/autocomplete.php", {
                //some options
            extraParams: {
                base: $('.selected_button').prev('input').val() //***                                                
                    },
            formatItem: function(data, i, n, value) {
                return value;
            }
        });
   });

Параметр "base" - это моя проблема (часть, отмеченная комментарием).

У меня три кнопки итри скрытых поля ввода на странице.Первоначально, когда страница загружена, я добавляю кнопку selected_button к одной из кнопок.Я подтвердил, что код jquery после «base:» может быть использован для доступа к этому элементу.Когда пользователь нажимает на одну из других кнопок, я удаляю класс selected_button из всех кнопок и добавляю его к кнопке, на которую нажал пользователь.

Я хочу использовать это для изменения базовой папки, котораяиспользуется для поиска автозаполнения.

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

Ответы [ 2 ]

1 голос
/ 23 мая 2011

Вы пытались обернуть базовый параметр внутри функции:

 base: function () { return $('.selected_button').prev('input').val(); }

Документы, кажется, предлагают это как возможность.

1 голос
/ 23 мая 2011

Вам нужно изменить опцию при удалении selected_button:

$("#the_input").autocomplete("option", "extraParams", new_selected_value)

взято из документации jqueryui:

опция

.autocomplete( "option" , optionName , [value] )

Получить или установить любой параметр автозаполнения. Если значение не указано, будет действовать как получатель.

...