2009-12-18 4 views
1

배열에서 사용자가 자동 ​​완성을 사용하여 선택한 요소의 색인 위치 값을 얻는 방법은 무엇입니까?자동 완성 jQuery 플러그인 : 선택된 배열 색인의 값

예 : 나는 자동 완성 플러그인에 대한 입력으로 두 요소를 갖는 배열 입력하는 경우 : 다음

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

을, 어떻게 선택된 인덱스 "1"의 값을받을 수 있나요, 사용자가 "폴"을 선택 말할?

답변

0

나는 당신의 질문을 이해, 당신은 할 수

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

jQuery find() 메소드로도이를 수행 할 수 있습니다. http://docs.jquery.com/Traversing/find#expr – Cheeso

0
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"); 
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')) 자동 완성의 소스에 직접 참조로 대체 할 수 할 수있는 항목.