Отправить дополнительные данные с параметрами автозаполнения

У меня есть поле, которое автоматически заполняет имя человека, поэтому в нем есть такие параметры, как «Обама, Барак», «Линкольн, Эйб» и т. Д.

У этих людей также есть дополнительные атрибуты, например, «Место рождения» и «Номер телефона». Когда пользователь выбирает вариант из автозаполнения, я хотел бы, чтобы дополнительные атрибуты этого человека автоматически заполняли скрытые поля формы.

Веб-сервис, который предоставляет параметры автозаполнения, также знает место рождения и номер телефона каждого, поэтому он может отправить эти данные клиенту. Однако плагин автозаполнения jQuery, который я использую, не принимает никаких дополнительных данных, подобных этому, — вы можете указать только параметры автозаполнения.

Любые мысли о том, как это сделать?


person Tom Lehman    schedule 01.04.2009    source источник


Ответы (3)


Используйте ЮИ :)

Обрабатывает все это, полностью настраиваемый из коробки.

person jminkler    schedule 01.04.2009

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

var persons = {
 abe: {
   name: 'abe',
   birthplace: 'I\'m not from the US so I have no clue'
  },
 Obama: {
   name: 'Obama',
   birthplace: 'please see abe'
 }
};

Затем сделайте что-то вроде:

for(name in persons){
 feedAutocomplete(name); //or persons[name].name
}

Или, если вам нужно заполнить автозаполнение одним массивом:

autoCompleteArray = Array();
for(name in persons){
 autoCompleteArray.push(name);
}
feedAutocomplete( autoCompleteArray );

И обратный вызов onAutoComplete:

function onAutoComplete(name){
  //or if the currect value is not supplied in
  // the function: var name = $('#autocompleField').val();
  var personInfo = persons[name]; 
  $('#hiddenFieldBirthplace').val( personInfo.birthplace );
}
person Pim Jager    schedule 01.04.2009

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

person Andrew Hedges    schedule 01.04.2009