Автоматическое заполнение jQuery с помощью extraParams для передачи дополнительный ПОЛУЧАЕТ переменные

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

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

В дополнение к запросу я хочу отправить, входное имя приписывают серверу, но я, может казаться, не использую $ (этот) .attr ('имя') в extraParams.

Мой jQuery:

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

Это - мой HTML.

 

Какие-либо предложения?

28
задан paperclip 28 April 2010 в 08:32
поделиться

2 ответа

Хотя это не совсем идеально, я взломал / модифицировал плагин, чтобы заставить его работать на меня.

Я просто изменил функцию AJAX jQuery внутри плагина.

Около строки 363 вы увидите:

        $.ajax({
            // try to leverage ajaxQueue plugin to abort previous requests
            mode: "abort",
            // limit abortion to this input
            port: "autocomplete" + input.name,
            dataType: options.dataType,
            url: options.url,
            data: $.extend({
                q: lastWord(term),
                search_type: $(input).attr('name'), // my mod to pickup multiple fields
                limit: options.max
            }, extraParams),
            success: function(data) {
                var parsed = options.parse && options.parse(data) || parse(data);
                cache.add(term, parsed);
                success(term, parsed);
            }
        });

Я все еще ищу элегантное решение этой проблемы, поэтому не стесняйтесь присылать предложения.

1
ответ дан 28 November 2019 в 03:00
поделиться

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

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

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

0
ответ дан 28 November 2019 в 03:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: