JQuery автозаполнение метод поиска - PullRequest
0 голосов
/ 04 ноября 2011

Я использую автозаполнение JQuery UI на моем веб-сайте. Я создаю объект автозаполнения следующим образом:

  $.widget( "custom.code_complete", $.ui.autocomplete, {
    _renderMenu: function( ul, items ) {
            var self = this,
                currentCategory = "";
        $ul = ul;
            $.each( items, function( index, item ) {
                if ( item.category != currentCategory ) {
                    ul.append( "<li class='ui-autocomplete-category'>" + item.category + "</li>" );
                    currentCategory = item.category;
                }
                self._renderItem( ul, item );
            });
        }
    });

  $("#r-code").code_complete({
    source: "URL",
    minLength: 2,
    select: function(event, ui) {
      $(".button-row").fadeIn();
      get_details(ui.item.url);
    }
  });

Это корректно настраивает поле автозаполнения. Я могу искать внутри поля нормально, и это возвращает результаты без проблем. Однако иногда пользователи будут перенаправлены с другой страницы с параметром автозаполнения, установленным в качестве параметра, и если это так, автозаполнение будет запускаться программно, я пытаюсь сделать это с помощью следующего кода:

function parse_param_code(code) {
  console.log(code);
  $("#r-code").autocomplete('search', code);
}

Этот метод успешно вызывается, и код выводится на консоль, но поиск автозаполнения не запускается и ничего не делает. Я делаю что-то не так в своем коде, чтобы это не вызывало поиск? Я прочитал документацию по JQuery UI, и приведенный выше код должен вызывать метод поиска. Любая помощь будет оценена.

Спасибо

Eef

1 Ответ

3 голосов
/ 04 ноября 2011

Изменение $("#r-code").autocomplete('search', code);

на собственное имя виджета, то есть:

$("#r-code").code_complete('search', code);

дает желаемый результат.

пример: http://jsfiddle.net/vHJsu/

Если вы сделаете console.log($("#r-code").data("autocomplete"));, вы заметите, что не существует виджета с таким именем, прикрепленным к элементу.

...