jQuery Автозаполнение с использованием extraParams для передачи дополнительных переменных GET - PullRequest
28 голосов
/ 28 апреля 2010

Я имею в виду именно плагин jQuery Autocomplete v1.1 от Jörn Zaefferer [source: http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/], так как, похоже, существует довольно много вариантов этого плагина.передать дополнительные параметры на сервер, когда пользователь начинает вводить текст, потому что у меня есть несколько полей, для которых я хочу, чтобы автозаполнение содержало предложения.

В дополнение к запросу я хочу отправить атрибут входного имени на сервер, ноЯ не могу использовать $ (this) .attr ('name') в extraParams.

Мой jQuery:

   $('.ajax-auto input').autocomplete('search.php', {
     extraParams: {
      search_type: function(){
       return $(this).attr('name');
      }
     }
   })

Это мой HTML.

 <form method="post" action="#" id="update-form" autocomplete="off">
  <ol>
         <li class="ajax-auto">
             <label for="form-initials">Initials</label>
                <input type="text" id="form-initials" name="initials" />
            </li>
         <li class="ajax-auto">
             <label for="form-company">Company</label>
                <input type="text" id="form-company" name="company" />
            </li>
  </ol>
 </form>

Есть предложения?

Ответы [ 13 ]

0 голосов
/ 07 июня 2011

У меня была такая же проблема, но, как ни странно, только с уменьшенной версией плагина автозаполнения. Когда я использовал не минимизированную версию, она работает. Я еще не посмотрел минимизированную версию, чтобы понять, в чем может быть разница.

0 голосов
/ 17 мая 2011

сначала используйте .each, затем вы можете использовать $ (this) и установить в переменную все, что вам нужно. Полученная переменная может быть использована при автозаполнении

$(".autosuggest").each(function (index, object) {
    var autosuggestType = $(this).attr("autoSuggestType");
    $(this).autocomplete("url",
            {                    
                extraParams: {
                    autoSuggestType: autosuggestType
                },
0 голосов
/ 28 апреля 2010

Я не уверен, почему это не работает.

Но вы можете сначала проверить / отладить значение $(this).attr('name').

Также еще одна вещь, как здесь объяснено [во вкладке настроек], вы можете проверить с помощью Firebug , чтобы увидеть пост-запрос ajax (для URL и его данных ), который поможет вам решить проблему.

...