Come posso utilizzare il completamento automatico di JQuery per più parole
-
05-07-2019 - |
Domanda
Ho un campo con completamento automatico e mi chiedo solo come posso usarlo per più parole? Quando scrivo la prima parola funziona perfettamente, ma quando spazio e digito la seconda parola, restituisce le due parole al server e ovviamente i risultati sono sbagliati!
ad es. quando scrivo le due parole,
"Java javascript"
la prima parola 'Java', completamento automatico funziona bene, estrarre l'elenco.
ma quando spazio e digito javascript, il completamento automatico invia 'Java + javascript "alla mia funzione Ajax.
Qualche idea su come risolvere questo problema?
Soluzione
Sembra che non puoi, l'implementazione integrata non lo supporta - puoi vedere nel link sopra: " non fa parte della versione stabile o distribuzione " ;.
Tuttavia, ho scaricato e utilizzato la versione esterna, disponibile qui :
http://bassistance.de/jquery-plugins/jquery-plugin- completamento automatico /
è un po 'più grande, ma l'utilizzo è esattamente lo stesso, non devi cambiare nulla, per la selezione multipla, aggiungi alle opzioni {multiple: true}
Aggiorna
JQueryUI ora è stato aggiornato per le versioni più recenti rendendo obsoleta questa risposta. Un esempio aggiornato può essere trovato qui
Altri suggerimenti
Se stai utilizzando il "bassistance" versione del completamento automatico, è integrata. Ma se si utilizza la versione dell'interfaccia utente jQuery, c'è un esempio qui:
$("#tagnames").autocomplete("/tags/filter", {
max: 6,
highlightItem: true,
multiple: true,
multipleSeparator: " ",
})
Per abilitare il completamento automatico per più parole devi impostare le opzioni multiple: true e multipleSeparator: " & Quot;
Aggiungendo un commento per una risposta più completa, supponiamo che tu abbia due possibili selezioni con un prefisso comune:
ip5 , batteria ip5
se l'utente digita nella casella di testo ip5, la prima selezione sopra verrà automaticamente scelta senza lasciare che l'utente continui a digitare per la seconda selezione, per evitare questo comportamento, assicurati di utilizzare l'opzione
triggerSelectOnValidInput: true,