簡體   English   中英

自動完成jQuery插件:所選數組索引的值

[英]Autocomplete jQuery Plugin : Value of selected array index

如何獲取數組中索引位置的值,用戶使用自動完成功能選擇了該元素的元素?

例如,如果我輸入包含兩個元素的數組作為自動完成插件的輸入:

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

然后,假設用戶選擇“ Paul”,如何獲得所選索引“ 1”的值?

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'))可以替換為對自動完成項來源的直接引用。

據我了解,您可以執行以下操作

function FindIndex( arr, searchValue ){
    for( var i = 0; i < arr.length; ++i ){
        if( arr[i] === searchValue ){
            return i;
        }
     }
 }

這個參考http://docs.jquery.com/Attributes/val#val表示您可以使用如下選擇器:

$('#selection option:selected')....
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");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM