2010-09-02 5 views
0

Je souhaite empêcher l'utilisateur d'entrer plus de 100 caractères dans une zone de texte. J'ai déjà écrit le code qui détectera quand le message de l'utilisateur atteint 100 caractères. Mais je ne sais pas comment l'empêcher de taper plus au-delà de ce point:Comment empêcher l'utilisateur d'entrer du texte dans un champ de formulaire à l'aide de JQuery?

$(document).ready(function(){ 

    $('.comment').keyup(function(){ 
     var count = this.value.length; 
     if (count > 100) { 

      // what goes here??? 

     }   
    }); 

}); 


    <textarea class="comment" rows="10" cols="30"></textarea> 
+0

vous devriez avoir la validation côté serveur de cela aussi, évidemment: D –

+0

@CrazyJugglerDrummer toujours. –

+2

que faire si vous maintenez une touche keyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy? – robotdana

Répondre

3

L'utilisation keypress peut être plus agréable. Vous pouvez tout simplement return false;

​$('textarea').keypress(function() { 
    if(this.value.length >= 100) 
     return false; 
})​​​​​;​ 

Cela empêche également l'utilisateur de maintenir une touche pour entrer plusieurs caractères au-delà de la limite.

Si vous souhaitez utiliser keyup, vous pouvez le faire:

$('.comment').keyup(function(){ 
    var count = this.value.length; 
    if (count > 100) { 

    this.value = this.value.substr(0,100); 

    }   
}); 
0
$(document).ready(function(){ 
    $('textarea[maxlength]').keyup(function(){ 
     var max = parseInt($(this).attr(’maxlength’)); 
     if($(this).val().length > max){ 
      $(this).val($(this).val().substr(0, $(this).attr('maxlength'))); 
     } 

     $(this).parent().find('.charsRemaining').html('You have ' + (max - $(this).val().length) + ' characters remaining'); 
    }); 
}); 

De http://that-matt.com/2008/07/textarea-maxlength-with-jquery/

Il y a aussi un plug-in pour cette http://remysharp.com/2008/06/30/maxlength-plugin/

1
​jQuery('textarea').keypress(function(e) { 
    if(this.value.length >= 100) { 
     e.preventDefault(); 
     return false; 
    } 
})​​​​​;​ 

preventDefault est nécessaire pour certains navigateurs comme IE et supportés par tous; mais vraiment nécessaire que pour un href onclick

keyup n'est pas le bon événement pour éviter que les touches ... la répétition des touches est faite avec keydown

Questions connexes