Perché il completamento automatico di JQuery non viene eseguito?
-
03-07-2019 - |
Domanda
Ho un caso molto interessante in cui il campo di completamento automatico di JQuery non risponde la prima volta che scrivo in TextBox, ma quando TAB esterno al TextBox e quindi restituisco il cursore a TextBox per la seconda volta, inizia a rispondere e i risultati sono mostrati mentre comincio a scrivere.
Quando uso firebug posso effettivamente vedere la funzione AJAX nella mia applicazione è stata chiamata e i risultati vengono restituiti al modello HTML, ma il risultato non viene visualizzato, che cosa potrebbe causare questo comportamento?
Codice di associazione della mia funzione:
$(function()
{
$(document).ready(function(){
$("#tags1").bind("keyup",autoFill)
});
});
La mia funzione di completamento automatico
function autoFill(){
$("#tags1").autocomplete("/taglookup/", {
width: 320,
max: 4,
highlight: false,
multiple: true,
multipleSeparator:",",
scroll: true,
scrollHeight: 300,
delay: 10
});
}
Campo My TextBox:
<input type="text" style="width: 400px" id="tags1" name="tags1" value="">
Soluzione
Perché stai effettuando la chiamata di completamento automatico () al keyup? Penso che ciò potrebbe causare i tuoi problemi. Proverei a chiamare autocomplete () direttamente dall'evento pronto per il documento.
$(document).ready(function(){
$("#tags1").autocomplete("/taglookup/", {
width: 320,
max: 4,
highlight: false,
multiple: true,
multipleSeparator:",",
scroll: true,
scrollHeight: 300,
delay: 10
});
});
Altri suggerimenti
Se stai usando lo stesso completamento automatico che ho usato oggi (su un altro computer mi dispiace - non riesco a scoprire quale fosse la versione esatta) - quindi non è necessario associare il keyup - basta collegarlo una volta all'avvio -
<script>
$('#tags1').autocomplete(....);
</script>
La funzione di completamento automatico gestisce tutti i tasti premuti / cambiamenti di messa a fuoco ecc.