![]() |
Forum SELFHTML: Archives: |
|
|
Le message suivant est de: yan, 04. 01. 2007, 15:42
bonjour,
comment pourrais je m'y prendre pour créer une fonction qui lorsque un retour a la ligne est fait dans un textarea, incrémente un compteur et que si ce compteur est égal 20, on ne puisse plus continuer dans le textarea. Attention les retour sont des retour auto fait avec \n et non manuellement avec enter.
Je ne n'arrive pas à trouver une solution concrète, quelqu'un pour m'aider
Merci
Le message suivant est de: domi, 04. 01. 2007, 17:38
»»
»» Je ne n'arrive pas à trouver une solution concrète, quelqu'un pour m'aider
»»
»» Merci
bonjour
voilà déjà une première solution qui bloque l'utilisation de textares car un \n a été détecté
-------------------------
<script type="text/javascript">
function compter()
{
var cpt = 0;
elem = document.getElementById("zone");
message = "coucou\ncoucou ";
elem.value = message;
texte=elem.value;
for (i=0; i < texte.length;i++){
if (texte.charAt(i) == '\n')
cpt++;
}
if (cpt > 0)
elem.disabled = "disabled";
}
</script>
</head>
<body>
<form>
<p>
<textarea id="zone"> </textarea>
<input type="button" onclick = "javascript:compter();" />
</p>
</form>
---------------------------------------------
Le message suivant est de: yan, 04. 01. 2007, 17:51
Cela ne fonctionne pas.
Le message suivant est de: domi, 04. 01. 2007, 18:26
»» Cela ne fonctionne pas.
fichtre
Qu'est ce qui ne fonctionne pas ? car j'ai moi pas de problème ...
Le message suivant est de: yan, 05. 01. 2007, 09:18
Et bien rien ne se passe, je peux faire auntant de retour ligne que je veux
Le message suivant est de: Celelibi,
_monpseudosanslamajuscule_@gmail.com, 05. 01. 2007, 18:59
Bonjour,
»» »»
»» »» Je ne n'arrive pas à trouver une solution concrète, quelqu'un pour m'aider
»» »»
»» »» Merci
»»
»» bonjour
»» voilà déjà une première solution qui bloque l'utilisation de textares car un \n a été détecté
»» -------------------------
»» <script type="text/javascript">
»» function compter()
»» {
»» var cpt = 0;
»» elem = document.getElementById("zone");
»» message = "coucou\ncoucou ";
»» elem.value = message;
»» texte=elem.value;
»» for (i=0; i < texte.length;i++){
»» if (texte.charAt(i) == '\n')
»» cpt++;
»» }
»»
»» if (cpt > 0)
»» elem.disabled = "disabled";
»»
»» }
»» </script>
»» </head>
»»
»» <body>
»»
»» <form>
»» <p>
»» <textarea id="zone"> </textarea>
»» <input type="button" onclick = "javascript:compter();" />
»» </p>
»» </form>
»» ---------------------------------------------
Pour commencer on ne met pas de "javascript:" dans un gestionnaire d'évènement (parceque c'est pas une url).
Ensuite '\n' représente un retour à la ligne, et pas la chaine \n. Javascript (contrairement à php) ne fait aucune différence entre simple te double quotes.
Il ne faut donc pas chercher '\n', mais '\\n'.
Et pour finir ce script ressemble à un teste. :)
Je pense que ceci serait plus correcte.
<script type="text/javascript">
function compter (elem) {
var char_searched = '\\n';
var nb_max_char = 20;
var cpt = 0;
var texte = elem.value;
for (var i=0; i < texte.length; i++){
if (texte.charAt(i) == char_searched)
cpt++;
}
return cpt <= nb_max_char;
}
</script>
</head>
<body>
<form>
<p>
<textarea onkeydown="compter(this)"></textarea>
On pourrait aussi faire un peu plus compliqué mais un peu plus classe en rajoutant une méthode numberOf à l'objet String qui compte le nombre fois qu'un char apparait dans la chaine.
Mais je pense que la solution actuelle est la plus simple.
Cordialement
Celelibi
--
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GS/M>O d-@>-- s: a--->? C++(+++)>$ UL++>++++$
P++(+)>++++$ L+++(++)>+++++$ E-?>++@ W+++>$
N?>++@ o?>+++++$ K->++++@$ !w>$ O? M- V? PS
PE Y+(++)>+++@ PGP+@>+++ t?>+@ 5? X+ ()R->+@
!tv>$ b(-) DI? !D>----@$ G>+++@ e+>+++++
h!>*$ r-- y>$
------END GEEK CODE BLOCK------

© 1998-2004
selfhtml@fr.selfhtml.org