JQuery Автозаполнение с несколькими входами - PullRequest
3 голосов
/ 05 января 2010

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

Я использую плагин автозаполнения jQuery, найденный здесь:

http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/

Демо-страница находится здесь:

http://jquery.bassistance.de/autocomplete/demo/

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

Это не имеет большого значения, но я также использую ASP.NET MVC.

Ответы [ 3 ]

3 голосов
/ 05 января 2010

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

var selectedCategory = $('.categories').val();
var query = '';
if (selectedCategory !== 0)
{
   query = '?category=' + selectedCategory;
}
$("#suggest4").autocomplete('search_service.svc' + query, {
   // options   
});

Надеюсь, это поможет.

0 голосов
/ 08 июля 2010

лучшее решение - добавить функцию обратного вызова extraParams к вашим параметрам

extraParams: {
  data: function(){ return new Date().getTime() }
},
0 голосов
/ 15 января 2010

Предыдущий ответ - 1/2 правильного. Проблема в том, что при вызове .autocomplete () запрос url + оценивается немедленно, что означает, что текущее выбранное значение категории ВСЕГДА будет использоваться при вызове автозаполнения. Это означает, что если пользователь выбрал другую категорию, новое значение не будет передано в командной строке запроса.

См. Эту запись в блоге для моего патча, который позволяет вам передавать функцию вместо URL, и при этом использовать код, аналогичный приведенному выше примеру Бендевея.

JQuery-автозаполнения-другие-поля

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

Eric

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...