Автозаполнение jQuery Plugin: значение индекса выбранного массива - PullRequest
1 голос
/ 18 декабря 2009

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

Например, если я введу массив с двумя элементами в качестве входных данных для плагина автозаполнения:

var arr = [];
arr[0] = "John";
arr[1] = "Paul";

Затем, скажем, пользователь выбирает «Пол», как мне получить значение выбранного индекса «1»?

Ответы [ 4 ]

1 голос
/ 24 февраля 2012

JQuery способ: Если ваш источник автозаполнения представляет собой простой массив (т.е. не массив пар меток-значений или URL), тогда вы можете сделать

$.inArray(ui.item.value,myAutocompleteSource)

, например

       $('.my-autocompletes').autocomplete({
                  source:['Option1','Option2','Option3'],
                  select: function(event, ui) {
                    alert('Your selected a string with index '+
                     $.inArray(ui.item.value,$(_self).autocomplete('option','source'))
                    );
              }
        });

Если источником является массив пар меток-значений, вы можете сделать

var index = -1;
$(_self).autocomplete('option','source')).each(function(idx) { 
       if (this.label == ui.item.label) { index=idx; return false; }
});
alert('You selected a string with index '+index);

Конечно, $(_self).autocomplete('option','source')) можно заменить прямой ссылкой на источник элементов автозаполнения.

0 голосов
/ 18 декабря 2009

Это ссылка http://docs.jquery.com/Attributes/val#val говорит, что вы можете использовать селектор так:

$('#selection option:selected')....
0 голосов
/ 20 декабря 2009
var arr = [];
arr[0] = "John";
arr[1] = "Paul";
...
//user selects something
//assuming select value now is in an input field
var index = jQuery.inArray($("input#yourselector").val(), arr);
if (index > -1)
    alert(index);
else
    alert("value not found in autocomplete array");
0 голосов
/ 18 декабря 2009

Как я понимаю ваш вопрос, вы можете просто сделать что-то вроде

function FindIndex( arr, searchValue ){
    for( var i = 0; i < arr.length; ++i ){
        if( arr[i] === searchValue ){
            return i;
        }
     }
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...