1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
|
<head>
<script language="Javascript" type="text/javascript">
// Affecte à certains évènements d'un textarea, le contrôle de la longueur de son contenu
// nom_textarea = id du textArea ; nbcar = nb car max ; nom_decompte = id de l'affichage du decompte
function LimiterTextArea(nom_textarea, nbcar, nom_decompte)
{
var montextarea = document.getElementById(nom_textarea);
var mondecompte = document.getElementById(nom_decompte);
if (montextarea && mondecompte)
{
var tmp = function() {
var cond1 = TextAreaEstRempli(montextarea, nbcar, mondecompte);
var cond2 = caractere_valide(event);
return (cond1 && cond2);
};
montextarea.onclick = tmp;
montextarea.onblur = tmp;
montextarea.onkeyup = tmp;
montextarea.onkeypress = tmp;
// Affichage du nombre de caractères restant
if(mondecompte.type)
mondecompte.value = NbCarRestant(montextarea, nbcar); // Pour un input de formulaire
else
mondecompte.innerHTML = NbCarRestant(montextarea, nbcar); // Pour un élément HTML
}
}
// Renvoie vrai si le nombre de caractères maximum du textarea n'est pas atteint
function TextAreaEstRempli(montextarea, nbcar, mondecompte)
{
if (montextarea)
{
if (montextarea.value.length <= nbcar)
{
//alert("pas rempli");
// mes actions ...
// *** Affichage du nombre de caractères restant
if(mondecompte.type)
mondecompte.value = NbCarRestant(montextarea, nbcar);
else
mondecompte.innerHTML = NbCarRestant(montextarea, nbcar);
return true;
}
else
{
// On retire le caractere de trop
montextarea.value = montextarea.value.substr(0, nbcar);
// Affichage du nombre de caractères restant
if(mondecompte.type)
mondecompte.value = NbCarRestant(montextarea, nbcar);
else
mondecompte.innerHTML = NbCarRestant(montextarea, nbcar);
alert("Un message est limité à 160 caractères !");
return false;
}
}
}
// Renvoie le nombre de caractère à saisir
function NbCarRestant(montextarea, nbcar)
{
if (montextarea.value.length)
return new Number(nbcar - montextarea.value.length);
else
return new Number(nbcar);
}
// verifie si le caractere tapé est autorisé
function caractere_valide(evt)
{
//var keyCode = evt.which ? evt.which : evt.keyCode;
var keyCode = evt.keyCode;
var interdit = 'àâäãçéèêëìîïòôöõùûüµñ&#~^%$£?²§%*[]{}<>|\\/`\'';
if (interdit.indexOf(String.fromCharCode(keyCode)) >= 0) {
alert("Les caractères spéciaux ne sont pas autorisés");
return false;
}
}
</script>
</head>
<body>
<textarea id="commentaire" name="commentaire" class="limiter"></textarea>
<div id="controle_decompte" name="controle_decompte" class="decompte"></div>
<script language="Javascript" type="text/javascript"> LimiterTextArea('commentaire', 160, 'controle_decompte'); </script>
</form>
</body> |
Partager