JQuery автозаполнение - Как обрабатывать дополнительные данные? - PullRequest
6 голосов
/ 16 декабря 2008

Я борюсь со следующей проблемой. Я использую плагин jQuery для автозаполнения , чтобы получить список предлагаемых значений с сервера. Список будет выглядеть так:

Username1|UserId1
Username2|UserId2

Так что, если я начну печатать "U", появится список "Username1" и "Username2", как и ожидалось. Я мог бы выбрать первый элемент, и значение <input> станет "Username1", но то, что я действительно хочу отправить на сервер, это идентификатор пользователя.

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

Ответы [ 3 ]

6 голосов
/ 17 декабря 2008

Используйте метод result плагина autocomplete для обработки этого. Данные передаются в виде массива для обратного вызова, и вам просто нужно где-то сохранить data[1]. Примерно так:

$("#my_field").autocomplete(...).result(function(event, data, formatted) {
    if (data) {
        $("#the_id").attr("value", data[1]);
    }
});
0 голосов
/ 03 мая 2012

К вашему сведению, эта статья местоположения динамически имеет хороший способ сделать это с помощью функции автора 'displaySelectedItem', которая вызывается через событие автозаполнения jQuery 'select' (полный код см. в статье).

Приветствия

Мэтт

0 голосов
/ 16 декабря 2008

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

Во что бы то ни стало сохраняйте автозаполнение и проверяйте AJAX, но если вы попытаетесь переместить данные жизненно важной формы (например, этой) в форму через JS, что-то будет ошибаться в некоторый момент.

Кроме того, если вам нужно работать с пользовательскими агентами, отличными от js, вам нужно написать этот метод любым способом.

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