Получение индекса выбранного элемента в jquery с автозаполнением - PullRequest
7 голосов
/ 24 августа 2011

Я использую jQuery autocomplete следующим образом:

Из моего PHP-файла я получаю массивы в кодировке json - один для идентификаторов и один для имен.

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

$(function() {
    $.ajax({
        type: "POST",
        url: "get_data.php",
        success: function(data) {
            data_array = jQuery.parseJSON(data);
            $("#my_autocomplete").autocomplete({
                source: data_array.names,
                select: function(event, ui) {
                    alert(ui.item);
                }
            });

        }
    });
});

1 Ответ

17 голосов
/ 24 августа 2011

Пример: http://jsfiddle.net/hY5Wt/

Вместо двух массивов вы можете иметь один массив объектов.Каждый объект будет иметь метку и индекс: {label:"First", idx:1}.Автозаполнение будет использовать метку для отображения, и при выборе события вы можете получить доступ к ui.item.idx для получения идентификатора / индекса.

$( ".selector" ).autocomplete({
   source: [{label:"First", idx:1},
            {label:"Second", idx:2},
            {label:"Third", idx:3}],
   select: function(event, ui) { alert(ui.item.idx); }
});

Вы ссылаетесь на плагин автозаполнения, но ваш код выглядит как выиспользую пользовательский интерфейс jQuery.

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