2011-08-24 35 views
7

estoy usando jQuery autocomplete, de la siguiente manera:recibiendo el índice del elemento seleccionado en jQuery autocompletado

Desde mi archivo PHP, soy obtener matrices JSON codificados - uno para los identificadores y uno de los nombres.

Llenar el autocompletar con los nombres. En la función select, puedo alertar correctamente al el elemento seleccionado, pero no puedo obtener el índice del artículo seleccionado. ¿Como lo consigo?

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

     } 
    }); 
}); 

Respuesta

16

Ejemplo: http://jsfiddle.net/hY5Wt/

en lugar de dos matrices, usted podría tener una matriz de objetos. Cada objeto tendría una etiqueta e índice: {label:"First", idx:1}. La función autocompletar usará la etiqueta para mostrar y, al seleccionar evento, puede acceder a ui.item.idx para obtener el identificador/índice.

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

se vincula a un plugin autocompletar, pero su código es el que está utilizando jQuery UI.

+0

¿Es posible mostrar en el cuadro de texto un solo campo? (no necesariamente este es el campo de etiqueta)? – FrenkyB

Cuestiones relacionadas