[Javascript] undefined lors utilisation funct

Fermé
Mr.White Messages postés 251 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 17 juillet 2012 - 4 mai 2007 à 12:28
Mr.White Messages postés 251 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 17 juillet 2012 - 1 juin 2007 à 12:29
Bonjour,

Tout d'abord, mon objectif :
Lorsque l'utilisateur écrit dans le textarea il faut qu'il soit limiter à 255 caractaire. Je souhaite qu'il ne puisse plus écrire arriver à cette limite. (optionnellement j'afficherai le nombre de caractère déjà écrit quelque part mais ce n'ai pas,pour le moment, le problème).

En passant toute la matiner j'ai fini par trouver un truc qui marche a peu prés MAIS je ne peut pas le mettre dans un function.

Quand je l'écrit comme ceci, ca marche :

<textarea id="Text_Actu" name="Text_Actu" cols=25 rows=5 wrap="physical" 
onkeypress="this.value = this.value.substr(0,10);">
Entrez ici votre actualité (255 caractaires max)</textarea>


Mais si je le mets dans une function, ca ne marche plus, ca me donne un undefined :
onkeypress="text();"


et la function :

function text(){
	this.value = this.value.substr(0,10);
	
}


Je ne comprend pas :{

Le seul truc que je trouve louche est un commentaire poser bizzarement et que ne seuble pas avoir d'influence :
<script language="JavaScript" type="text/JavaScript">
<!--
function truc{...}
function truc{...}
function truc{...}
function text(){
	this.value = this.value.substr(0,10);
	
}

//-->
</script>


J'ai aussi tester en mettant une deuxième balise <script></script>, la même mais sans les commentaire mais rien a faire.

Je peut toujours me rabattre sur ma solution mais, sa va peut-être me poser problème plus tard.

L'autre petit problème c'est coment faire pour que sa bloque net. Pour le moment, le dernier caractère de la chaine est variable, c'est à dire que c'est le dernier caractère taper par l'utilisateur. J'aimerai que sa se bloque. J'aimerai également pourvoir tout supprimer d'un coup mais comme c'est une touche clavier, sa ne fonctionne pas vraiment.

Je croit que j'ai fait le tour de la question.

Merci ;o)

3 réponses

Salut,

Je n'ai pas testé mais il faut faire quelque chose du genre :

onkeypress="this.value=text(this.value);"

et la function :

function text(variable) {
return variable.substr(0,10);

}

Et pour le commentaire, ne t'inquiète pas c'est normal dans la syntaxe javascript, c'est pour que les navigateurs qui ont désactivé le javascript ne le lisent pas.

ec
Gihef Messages postés 5150 Date d'inscription mercredi 20 juillet 2005 Statut Contributeur Dernière intervention 20 février 2023 2 776
5 mai 2007 à 00:20
Bonjour,

Chez l'éditeur JavaScript, après une recherche “limitation”, on en trouve deux.
Celui-ci, qui fait plus, est assez sympa*.

Pour effacer le contenu d'un formulaire, un type de bouton est prévu :
  <button name="reset" type="reset">Effacer</button>

* Une “size="3"” dans le “<input type="text" name="CharRestant"” serait plus adaptée.
Mr.White Messages postés 251 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 17 juillet 2012 53
1 juin 2007 à 12:29
Je voulai dire tout supprimer ... dans le textarea ;o) mais pas dans les autre champ.

En faite ca rejoint le problème du dernier caratère je pense.

Quand on arrive à bout, le clavier est toujour actif et donc la dernière lettre du text varie en fonction de la touche du clavier qu'on entre.

Et si je selectionne à la sourie une parti du text, comme la fin pour éviter de finir sur un mot couper, et que je fait la touche clavier "retour arrière, ca ne fonctionne pas". Et je pense que c'est parceque le "retour arrière" EST une touche du clavier.