2014-07-09 13 views
7

buon pomeriggio a tutti!utilizzando jquery-ui completamento automatico con più campi di input

ho risparmiato un sacco di tempo, ho letto tutti i post su StackOverflow ... e non sono in grado di eseguire il completamento automatico con campi di input multilpe. Ho provato ad attribuire una classe 'autoc' ad ogni input, uso un id differente per ogni campo (in effetti l'inedx dei campi di generazione del loop php). Non chiedo a qualcuno di fare il lavoro per me .... solo un esempio funzionante.

Grazie in anticipo.

PS: Mi scuso per il mio povero inglese ...

segue ora un pezzo di html:

<input id="search_ctO" class="autoc" type="text" name="search_ct[]"> 
    <input id="search_ct1" class="autoc" type="text" name="search_ct[]"> 
    <input id="search_ct2" class="autoc" type="text" name="search_ct[]"> 
    .... 
    <input id="search_ctn" class="autoc" type="text" name="search_ct[]"> 

e jQuery:

$('.autoc').on("focus", function() 
     $(this).autocomplete({ 
     minLength: 2, 
     source: 'liste_contact.php', 
     select: function(event, ui) { 
     $('.autoC#search_ct').val(ui.item.label); //id="search_ct'.$i.' 
     $(".autoC#contact_id").val(ui.item.value); // 
     $("autoC#contact_description").val(ui.item.desc); 
     return false; 
     }, 
     change: function(){ 
     var servi = $("#service_id").val(); 
     var hop = $('#hop').val(); 
     var contact = $("#contact_id").val(); 
     $.ajax({ 
      url: 'ajout_contact.php', 
      data: "serv="+ servi+"&hopit=" + hop+"&contact="+ contact+"",// on envoie la requete d'ajout de contact 

     success: function() { 
       $("#search_ct").val(''); 
       // location.reload(true);   
     } 

risposta

10

Senza conoscere l'esatto HTML e il array di oggetti passati a autocomplete origine, è difficile rendere esattamente il codice.

Tuttavia, avete chiesto di lavorare di autocomplete per più campi, ecco è solo un semplice esempio:

HTML

<input id="search_ctO" class="autoc" type="text" name="search_ct[]"/> 
<input id="search_ct1" class="autoc" type="text" name="search_ct[]"/> 
<input id="search_ct2" class="autoc" type="text" name="search_ct[]"/> 
<input id="search_ctn" class="autoc" type="text" name="search_ct[]"/> 

JS

var tags = ["abc","def","xyz"]; 
$('.autoc').on("focus", function(){ 
     $(this).autocomplete({ 
     minLength: 2, 
     source: tags 
     }); 
}); 

JSFIDDLE DEMO

Se ci sono altre cose che si desidera includere nella risposta, sentitevi liberi di commentare.

EDIT

Il codice,

$('.autoc').on("focus", function() { 
    $(this).autocomplete({ 
     minLength: 2, 
     source: 'liste_contact.php', 
     select: function(event, ui) { 
      $('.autoC#search_ct').val(ui.item.label); 
      $(".autoC#contact_id").val(ui.item.value); 
      $("autoC#contact_description").val(ui.item.desc); 
      return false; 
     }, 
     change: function() { 
      var servi = $("#service_id").val(); 
      var hop = $('#hop').val(); 
      var contact = $("#contact_id").val(); 
      $.ajax({ 
       url: 'ajout_contact.php', 
       data: "serv="+servi+"&hopit="+hop+"&contact="+contact+"", 
       success: function() { 
        $("#search_ct").val('');   
       } 
      }); 
     } 
    }); 
}); 
+0

infatti, l'elenco a discesa per il completamento automatico ha funzionato bene ... il mio problema è "come RECUP gli elementi selezionati" ... scusate per la espressione inesatta dei miei bisogni – Gerard13007

+0

Dovresti scrivere una domanda corrispondente per quello. Dovresti dirci dove si trova esattamente il problema, anche se è molto minuto. Quindi per favore chiarisci cosa vuoi fare con l'oggetto selezionato. Inoltre, ci sono errori di sintassi nel codice. Se non è un refuso, correggilo prima. – j809

+0

Mi scuso per il ritorno in ritardo ... seguendo il tuo consiglio per correggere il mio codice, le cose funzionano come un incantesimo. Molte grazie. Pensi che sia utile pubblicare il codice di lavoro e i commenti? E se lo è, qual è il modo per farlo (io sono uno stackoverflow neebie) – Gerard13007