2011-01-30 22 views
5

Sto costruendo uno script di completamento automatico come per gli input di testo. Per evitare più chiamate ajax non necessarie, desidero avviare chiamate ajax solo dopo che l'utente ha smesso di digitare il testo per 1 secondo. In questo modo salverò alcune chiamate generali per ogni tasto premuto. Come posso ottenere ciò usando jQuery?Ritardo chiamata ajax all'ingresso chiave in jQuery

Grazie,

Joel

+0

o per riferimento, o così non reinventare la ruota, il plugin di completamento automatico di jqueryui è eccellente, e ha questa funzione esatta (è ovviamente opzionale, e quando è in uso, è possibile impostare il ritardo) ... – davin

risposta

2

Puoi provare qualcosa di simile. Non stavo ancora giocando con sopra. Sto usando semplicemente js.

var keyUpTime = 1000; // 1 sec 
var keyUpTimeout = null; 
$('input[type=text]').keyup(function(e) { 
    clearTimeout(keyUpTimeout); 
    keyUpTimeout = setTimeout(function() { sendAjax(); }, keyUpTime); 
}); 
function sendAjax() { 
    alert('Send it!'); 
} 
+4

Si sta inquinando l'ambito globale con 'keyUpTime' e' keyUpTimeout' – ThiefMaster

+0

Gli eventi chiave non si attivano se si fa clic con il pulsante destro del mouse e si seleziona Incolla nel menu di scelta rapida. – Fred

2

C'è un altro plugin jQuery per questo. Funziona perfettamente per me a link

Problemi correlati