Un script pour limiter la taille d'un textarea

yoja_admin
does not have a status.
Portrait de yoja_admin
L'utilisateur est Offline. Vue la dernière fois à 2 semaines 1 jour. offline
Inscription: 22/10/2008

script pour limiter la taille d'un textarea

Ci dessous un petit script sans prétention pour limiter la saisie dans les textarea (pré-requis jQuery). A noter que le contrôle du nombre de caractères doit être également être mis en place côté serveur puisque le javascript s'exécute côté client et peut être désactivé par l'utilisateur.

Le code JavaScript

			
$("[class*='limited']").each(function(i){
	var c = $(this).attr("class");
	var from = c.indexOf("(");
	var to = c.indexOf(")");
	var limit = c.substring(from+1,to);
			 	
	$(this).keyup(function(){
		if(($(this).val().length)>=parseInt(limit)-1){
			 $(this).val($(this).val().substring(0,limit));
			 return false;
		}
	});
});

Le code HTML

<textarea class="limited(10)"></textarea>
yoja_admin
does not have a status.
Portrait de yoja_admin
L'utilisateur est Offline. Vue la dernière fois à 2 semaines 1 jour. offline
Inscription: 22/10/2008
amélioration du script pour

amélioration du script pour limiter la saisie dans un textarea

ci dessous le script "limiter la taille d'un textarea" amélioré pour prendre en compte le copier/coller via le menu contextuel (clic droit) :
$(function(){

  //Taille limitée
  $("[class*='limited']").each(function(i){
    var c = $(this).attr("class");
    var from = c.indexOf("(");
    var to = c.indexOf(")");
    var limit = parseInt(c.substring(from+1,to));

    $(this).bind("keyup keydown change",function(e){
      if (this.value.length > limit) {
      this.value = this.value.substring(0, limit);
      }
    });
  });

});
Anonyme
does not have a status.
Portrait de Anonyme
amélioration du script pour

Cela ne prend pas en compte le copier/coller via le menu contextuel (clic droit). Lorsque que le texte est copier dans la textarea, il n'est pas réduit. Ce n'est qu'au sortir de la textarea donc sur le "change" que le text est tronqué.