$("[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;
}
});
});
<textarea class="limited(10)"></textarea>
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é.
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); } }); }); });