begin process at 2012 05 29 12:51:45
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

CSS

 > 

Général

 > 

Limiter Caractères Textarea


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Limiter Caractères Textarea

mardi 16 janvier 2007 à 13:53:39 | Limiter Caractères Textarea

piep14

Bonjour tout le monde, je cherche a limiter le nombre de caractères dans un textarea.

J'ai trouvé cette fonction que j'utilise sous FF très bien et je viens de la tester sous IE et je me rend compte quelle n'affiche pas de résultat. Voici la fct :

Code :
// args : string moncontroletexte, int nbcar, string moncontroledecompte
// return : aucun
// Affecte à certains évènements d'un textarea, le contrôle de la longueur de son contenu
function LimiterTextArea(nom_controletexte, nbcar, nom_controledecompte)
{
var moncontroletexte = document.getElementById(nom_controletexte);
 
var moncontroledecompte = document.getElementById(nom_controledecompte);
 
if(moncontroletexte && moncontroledecompte)
{
 
moncontroletexte.onclick = function(){TextAreaEstRempli(moncontroletexte, nbcar, moncontroledecompte)};
moncontroletexte.onblur = function(){TextAreaEstRempli(moncontroletexte, nbcar, moncontroledecompte)};
moncontroletexte.onkeyup = function(){TextAreaEstRempli(moncontroletexte, nbcar, moncontroledecompte)};
moncontroletexte.onkeypress = function(){TextAreaEstRempli(moncontroletexte, nbcar, moncontroledecompte)};
 
// *** Affichage du nombre de caractères restant
if(moncontroledecompte.type)
moncontroledecompte.value = NbCarRestant(moncontroletexte, nbcar); // Pour un input de formulaire
else
moncontroledecompte.innerHTML = NbCarRestant(moncontroletexte, nbcar); // Pour un élément HTML
 
}
}
 
// TextAreaEstRempli
// args : textarea moncontroletexte, int nbcar, element_HTML moncontroledecompte
// return : bool
// Renvoie vrai si le nombre de caractères maximum du textarea n'est pas atteint
function TextAreaEstRempli(moncontroletexte, nbcar, moncontroledecompte)
{
if(moncontroletexte)
{
if(moncontroletexte.value.length <= nbcar)
{
//alert("pas rempli");
// mes actions ...
 
// *** Affichage du nombre de caractères restant
if(moncontroledecompte.type)
moncontroledecompte.value = NbCarRestant(moncontroletexte, nbcar);
else
moncontroledecompte.innerHTML = NbCarRestant(moncontroletexte, nbcar);
 
returntrue;
}
else
{
//alert("rempli");
// mes actions ...
 
// Affichage du nombre de caractères restant
moncontroletexte.value = moncontroletexte.value.substr(0, nbcar);
 
// *** Affichage du nombre de caractères restant
if(moncontroledecompte.type)
moncontroledecompte.value = NbCarRestant(moncontroletexte, nbcar);
else
moncontroledecompte.innerHTML = NbCarRestant(moncontroletexte, nbcar);

returnfalse;
}
}
}
 
// NbCarRestant
// args : textarea moncontroletexte, int nbcar
// return : int
// Renvoie le nombre de caractère à saisir
function NbCarRestant(moncontroletexte, nbcar)
{
if(moncontroletexte.value.length)
returnnew Number(nbcar - moncontroletexte.value.length) + " <a>caractères restants</a>";
else
returnnew Number(nbcar) + " <a>caractères restants</a>";
}

Auriez vous une idée ?

Merci de votre aide
mardi 16 janvier 2007 à 15:26:28 | Re : Limiter Caractères Textarea

lesdis

Je n'ai pas testé ta fonction car je la trouve un peu longue pour ce que tu veux faire.

Personellement je ferais plutôt quelque chose dans ce style :

<script>
function limite(texte)
{
   if (texte.length >10){

    document.getElementById('contenu').value = texte.substr(0,10);
   }
}



</script>

<textarea id="contenu" rows="15" cols="80" onKeypress="javascript: limite(this.value);">
</textarea>


mardi 16 janvier 2007 à 15:30:58 | Re : Limiter Caractères Textarea

lesdis

Tu peut meme appliquer un onKeyup à la place du onKeypress. Je trouve cela plus beau mais cela reste personnel

Normalement, cela devrait être compatible FF,IE,Opera, mais il faut savoir que du javascript n'est pas fiable à 100%. C'est assez facile de passer outre les verifications javascript donc n'oublie pas de refaire une vérification en PHP/ASP si tu doit le stocker dans une base de donnée par la suite.

Bonne journée
mardi 16 janvier 2007 à 16:09:36 | Re : Limiter Caractères Textarea

piep14

Oui, et comment je fais pour afficher un décompte du nombre de caractères qu'il nous reste à saisir ???

Merci
mardi 16 janvier 2007 à 17:03:55 | Re : Limiter Caractères Textarea

lesdis

caractere_restant = ta_limite - texte.length

Apres je ne sais pas comment tu veut l'afficher.
mardi 16 janvier 2007 à 17:19:46 | Re : Limiter Caractères Textarea

piep14

Je souhaite l'afficher sous mon textarea !!!
xxx caractères restants
mardi 16 janvier 2007 à 18:27:17 | Re : Limiter Caractères Textarea

PetoleTeam

Membre Club


B onjour...
décidément les TEXTAREA sont à la mode ;O)

tu peux l'écrire dans un input type text
<input type="text" READONLY name="reste" value="0" size=3  maxlength=3>

avec un test comme l'indique lesdis :
//----------------------------
function limite( this_,  max_){
  var Longueur = this_.value.length;

  if ( Longueur > max_){
    this_.value = this_.value.substring( 0, max_);
    Longueur = max_;
   }
  document.getElementById('reste').value = max_ - Longueur;
}
et avec un appel du type
<TEXTAREA ID='T_MESS' NAME='T_MESS' COLS="40" ROWS="5" onkeyup="limite( this,  10);" >Bonjour</TEXTAREA>

cela peut bien sur également se mettre dans un DIV c'est au choix, mais la il faut utiliser
document.getElementById('reste').innerHTML = (max_ - Longueur) +"caractères restant";  // par exemple

;0)




Cette discussion est classée dans : caractères, value, moncontroletexte, nbcar, moncontroledecompte


Répondre à ce message

Sujets en rapport avec ce message

Pb avec mon script de contrôle !! [ par seb3110 ] Salut ! Voilà, je débute en javascript, et j'ai un petit problème avec mon script qui me permet de contrôler les caractères saisis par l'utilisateur d Personne n'est capable de trouver le pourquoi ????? [ par manueg ] Bonjour à tous, je desespère de trouver pourquoi ce code ne fonctionne pas dans Netscape alors que tout est OK dans IE...Il n'arrive pas en fait à me Correction Html + Javascript [ par dream ] Voilà, j'ai voulu un peu modifier un des nombreux test qu'on peut trouver sur le net, mais bon je m'y connais pas vraiment. Si quelqu'un pouvait me co date [ par natnat ] bonjor,je suis en stage et ds une panade complete, si qq'1 pouvait m'aider, ce serait super coolje passe à suivre la fonction que j'ai copié et adapté "-1" [ par eryk17 ] dans ce code :function isEmail(elm){if (elm.value.indexOf("@") != "-1" && elm.value.indexOf(".") != "-1" ){ return true;} else { return false;}} Value d'un input type file [ par mickelo ] Bonjour a tous. tout d'abord merci de donner un peu de votre temps pour le forum c top. (et pour moi aussi)Voila moi je recupere dans une variable asp comment recuperer la value d'un radio ? [ par roro06 ] Un formulaire doit concatener plusieurs champs dont des radio avant d'etre envoyé au serveur. Mais comment récupérer la valeur des champs radio ? ex:M erreur javascript [ par elanspeech ] Bonjour,g un probleme dans la fonction javascript suivante : Divers est indéfini.... je ne comprends pas.function MusiqueByCategorie( val ) { if ( v erreur javascript [ par elanspeech ] Bonjour,g un probleme dans la fonction javascript suivante : Divers est indéfini.... je ne comprends pas.function MusiqueByCategorie( val ) { if ( v succession de questions (form.) [ par ssylvain ] Le code ci-dessous est un formulaire de questions qui se succèdent dans un 1er champ.Dans le 2ème champ, le candidat donne sa réponse.Puis il valide.E


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,905 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales