Я отсылаю конкретно к Автоматическому заполнению 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.
Какие-либо предложения?
Хотя это не совсем идеально, я взломал / модифицировал плагин, чтобы заставить его работать на меня.
Я просто изменил функцию 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);
}
});
Я все еще ищу элегантное решение этой проблемы, поэтому не стесняйтесь присылать предложения.
Я не уверен, почему это не работает.
Но вы можете сначала проверить/отладить значение $(this).attr('name')
.
И еще одна вещь, как здесь объяснялось [во вкладке options], вы можете проверить с помощью Firebug, чтобы увидеть ajax post request (для url и его данных), что поможет вам решить проблему.