2010-08-13 33 views
0

Je tente de créer une fonctionnalité dans laquelle un utilisateur tape du texte dans la zone de texte et après un délai d'une seconde, chaque caractère tapé est converti en majuscules. Cela devrait se produire lorsque l'utilisateur tape.Utilisation de Delay sur une zone de texte

Puis-je utiliser jquery?

Répondre

0

Ce n'est peut-être pas le moyen le plus jQuery-esque, mais quelque chose comme ça.

setInterval((function (textbox) { 
    return function() { 
     textbox.val(textbox.val().toUpperCase()); 
    } 
}($("#myTextBox"))), 1000); 

Bien sûr changer $("#myTextBox") au sélecteur correspondant

0

Vérifiez la réponse à cette question pour plus de détails:

How to delay the .keyup() handler until the user stops typing?

Mais voici un exemple de travail complet de tout attaché ensemble:

$(document).ready(
    function() 
    { 
     var delay = (function(){ 
      var timer = 0; 
      return function(callback, ms){ 
      clearTimeout (timer); 
      timer = setTimeout(callback, ms); 
      }; 
     })(); 

     $("#testerText").keyup(
      function() 
      { 
       delay(function() 
       { 
        $("#testerText").val($("#testerText").val().toUpperCase()); 
       }, 1000); 
      }); 
    }); 

http://jsfiddle.net/5Nq2f/