Пользовательский интерфейс jQuery автоматически заполняет несколько элементов управления вводом с несколькими источниками JSON - PullRequest
1 голос
/ 17 июня 2011

У меня работает этот код, из этого примера :

var url = function(req, res){
    $.ajax({
        url: "getdata",
        dataType: "json",
        data: {
            term: req.term,
        },
        success: function(data){
            res($.map(data.students, function(item){
            return{
                label: item.cardId + "|" + item.firstName + " " + item.lastName,
                value: item.cardId
            }}))
        }
    });
};


$("#autocomplete").autocomplete({
    source: url
});
$("#autocomplete2").autocomplete({
    source: url
});

И элементов ввода:

<input path="students" id="autocomplete" style="z-index: 100; position: relative" title="type &quot;a&quot;" autofocus="autofocus" />
<input path="items" id="autocomplete2" style="z-index: 100; position: relative" title="type &quot;a&quot;" />

Оба входа теперь имеют одинаковый выпадающий список. Вопрос: Как изменить функцию URL, чтобы она подходила для студентов и пунктов ?Или просто скопировать функцию для каждого типа ввода?

1 Ответ

4 голосов
/ 17 июня 2011

Внутри вашей функции url, this.element даст вам элемент, который запустил автозаполнение.Вы можете использовать this.element.attr("id") или другой метод для изменения URL JSONP.

Демонстрация здесь и код здесь

...