2009-12-18 6 views
1

Comment puis-je obtenir la valeur de la position d'index dans le tableau, dont l'élément que l'utilisateur a choisi l'aide de la saisie semi-automatique?Autocomplete jQuery Plugin: Valeur de l'index de tableau sélectionné

Pour exemple si j'entre le tableau, avec deux éléments que l'entrée pour le plugin autocomplete:

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

Ensuite, dire utilisateur sélectionne « Paul », comment puis-je obtenir la valeur de l'indice sélectionné « 1 »?

Répondre

0

Si je comprends bien votre question, vous pourriez faire quelque chose comme

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

peut faire aussi que la méthode find() jQuery. 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

façon jQuery: Si votre source d'auto-complétion est un tableau simple (c.-à-d. Pas un tableau de paires étiquette-valeur ou URL), alors vous pouvez faire

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

par exemple,

 $('.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')) 
        ); 
       } 
     }); 

Si la source est un tableau de paires valeur de l'étiquette, alors vous pouvez faire

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); 

Bien sûr, $(_self).autocomplete('option','source')) peut être remplacée par une référence directe à la source de saisie semi-automatique articles.

Questions connexes