jQuery autocomplete - получить идентификатор поля ввода автозаполнения - PullRequest
5 голосов
/ 25 февраля 2011

у меня есть этот код jQuery:

$(".autocomplete").autocomplete('url',{
  extraParams: {country: function(){
    var id = $(this).attr("id"); // not working
    var country = id.replace("uni", "country");
    var country_id = $("#"+country).val();
    return country_id;
  }}            
}).result(function(event, item) {
 // getNames(item);
});

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

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

uni_1, country_1;uni_2;country_2

uni - поле автозаполнения, а страна - дополнительный параметр.

Я понял, что $ (this) .attr ("id") не будет работать внутри автозаполнения, так какс простыми событиями jQuery, и я не нашел способ сделать это.Я попытался с помощью метода toSource увидеть объект автозаполнения, но, похоже, он не содержит идентификатор поля.

Так что, если у кого-то есть идеи, как это можно сделать, поделитесь.

Заранее большое спасибо.Иван

1 Ответ

6 голосов
/ 25 февраля 2011

Вы можете попробовать

$(".autocomplete").each(function() {
  var id = $(this).attr("id");
  $(this).autocomplete('url',{
      extraParams: {country: function(){
        var country = id.replace("uni", "country");
        var country_id = $("#"+country).val();
        return country_id;
      }}            
    }).result(function(event, item) {
     // getNames(item);
    });
});
...