Добавление метаданных в автозаполнение пользовательского интерфейса jQuery - PullRequest
1 голос
/ 28 апреля 2011

Я пишу приложение для обмена сообщениями, которое использует автозаполнение пользовательского интерфейса jQuery в поле «Отправить».У меня все работает нормально, но мне нужно прикрепить биты метаданных, например, идентификатор пользователя, к элементам.

Когда элемент выбран, я планирую добавить скрытый ввод с идентификатором пользователя, напримеритак: <input type="hidden" name="to[]" value="4" /> Добавление по одному для каждого выбранного пользователя.Затем, когда форма отправлена, эти данные будут отправлены в php-скрипт, где я могу отправлять сообщения каждому пользователю.

Мне просто интересно, возможно ли что-то подобное, если нет, то, что можетбыть лучшим способом обойти это?Или есть ли лучший способ сделать это, чем я думаю?

Спасибо,

1 Ответ

4 голосов
/ 29 апреля 2011

Вы на правильном пути!

Виджет автозаполнения построен для обработки подобных ситуаций. Пока элементы в вашем source имеют свойство value (и, возможно, свойство label), виджет будет правильно отображать параметры.

Итак, у вас есть два варианта. Вы можете предоставить свойство label и value и создать свои скрытые элементы input со свойством value после события select, либо использовать свой собственный атрибут. Это проще увидеть на примере:

var users = [
    { label: 'Jon', value: 1 },
    { label: 'Jeff', value: 2 },
    { label: 'Marc', value: 3 },
    { label: 'Josh', value: 4 },
    { label: 'Andrew', value: 5}
];

$("#autocomplete").autocomplete({
    source: users,
    select: function(event, ui) {
        $("body").append("<input type='text' value='" + ui.item.value + "'/>");
    }
});

Вот рабочий пример: http://jsfiddle.net/EYQLV/1/

Вы также можете легко использовать ui.item.id, если каждый элемент в вашем источнике содержит это свойство.

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