2011-08-24 20 views
7

sto usando jQuery autocomplete, come segue:Ottenere l'indice della voce selezionata in jQuery completamento automatico

Dal mio file PHP, io sono ottenere JSON array codificati - uno per gli ID e una per i nomi.

Compilare il completamento automatico con i nomi. Nella funzione select, sono in grado di avvisare correttamente l'elemento selezionato, ma non sono in grado di ottenere l'indice dell'elemento selezionato. Come lo ottengo?

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

     } 
    }); 
}); 

risposta

16

Esempio: http://jsfiddle.net/hY5Wt/

Invece di due matrici, si potrebbe avere una matrice di oggetti. Ogni oggetto avrebbe un'etichetta e un indice: {label:"First", idx:1}. Il completamento automatico utilizzerà l'etichetta per visualizzare e su evento selezionato, è possibile accedere a ui.item.idx per ottenere l'identificatore/indice.

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

si collega a un plugin completamento automatico, ma il codice sembra che si sta utilizzando jQuery UI.

+0

E 'possibile mostrare nella casella di testo solo un campo? (non necessariamente questo è il campo delle etichette)? – FrenkyB

Problemi correlati