2009-07-23 9 views

Répondre

0

En utilisant jQuery, mais ne hésitez pas à remplacer votre propre bibliothèque JS de choix:

var currentTimer = null; 
input.bind('keyup', function() { 
    if (!currentTimer) { 
     currentTimer = true; 
     setTimeout(function() { 
      if (currentTimer) { 
       currentTimer = null; 

       // Do ajax call here 
      } 
     }, 2000); 
    } 
}); 
0

J'utilise jQuery ici, mais vous devriez obtenir le point:

function callAjax() { 
    timer = null; 

    // handle all your ajax here 
} 

var timer = null; 

$('input').keyup(function() { 
    // this will prevent you from reseting the timer if another key is pressed 
    if (timer === null) { 
     timer = setTimeout(callAjax, 2000); 
    } 
}); 
0

Si vous êtes en utilisant jQuery, vous pouvez utiliser l'excellent plugin delayedObserver.

0

2 secondes après la dernière pression sur la touche ou à chaque pression de la touche?

<input type="text" id="txtBox" value="" width="200px"/> 
<input type="text" id="txt" width="200px"/> 

<script type="text/javascript"> 
    $(document).ready(function(){ 
    $("#txtBox").keyup(function(){ 
     setTimeout(function(){ 
      $("#txt").val($("#txtBox").val());//Here call ajax code 
     },2000); 
     }); 
    }); 
</script> 
+0

Salut, je pourrais faire avec ce code. Pour moi, quand je cours le code, il attendra 2 secondes indépendamment de ce qui est tapé puis exécuté. Pouvez-vous le modéliser de façon à ce qu'il réinitialise le minuteur si une autre touche est pressée? – CaRDiaK

Questions connexes