Balise <Textarea>

RiKé -  
 slooptoo -
Slt tout le monde,

Est-il possible de limiter le nombre de caratères d'une balise Textarea ou alors d'interdire le scrolling en fin de boite...?

Merci d'avance

5 réponses

Mline
 
Pas à ma connaissance (cf http://www.allhtml.com/langages/balise/textarea.php3)
Par contre, tu dois pouvoir faire ça en javascript
0
Jean-François Pillou Messages postés 19261 Date d'inscription   Statut Webmaster Dernière intervention   63 279
 
Seul un javascript peut faire ça ... car ce n'est pas prévu dans la norme HTML 3.2 ...
0
RiKé
 
Merci pour la réponse... je m'en doutais un peu.
Cependant j'ai de grosses lacunes en Javascript, comment vois-tu la commande ?

Merci d'avance pour ton coup de pouce
@+
0
Bobinours Messages postés 2903 Statut Membre 504 > RiKé
 
Salut, voici une solution a ton probleme:

<SCRIPT>
var taille = 5;
function limite(champ)
{
if(champ.value.length > taille) {
alert ('TROP de caractere');
// ici on bloque la taille, sinon il ajoute le caractere quand meme.
champ.value = champ.value.substr(0, champ.value.length-1);
}
}
</SCRIPT>
...
<TEXTAREA name="TA" OnKeyPress="limite(this)"></TEXTAREA>

Cependant, tu remarqueras que le dernier caractere change quand meme... J'ai pas reussi a bloquer entierement la saisie.
Si qq'un trouve ou sait, c'est interessant a savoir.

-= Bobinours =-
0
RiKé
 
Merci, c'est impécable...
Sauf que si le texte vient d'un copier/coller, alors là il ne peut pas être compter en temps réel de frappe...

@+
0
Bobinours Messages postés 2903 Statut Membre 504
 
T'as tout à fait raison !!

Dans ce cas ajoute un "onChange"... (le "onKeyPress" n'est plus necessaire mais reste pratique lors de la saisie).
J'ai fais quelques modifications à mon script: il y avait un bug car il prenait un caractère de trop (6 au lieu de 5)... Du coup, je passe la taille en paramètre de la fonction car ce n'est pas la même sur les deux événements.
Ensuite je ne fais plus :
champ.value.substr(0, champ.value.length-1)
mais
champ.value.substr(0, taille)
Toujours pour le copier coller et beaucoup plus propre...
Ca donne ca:

<SCRIPT>
var tailleTA = 5;
function limite(champ,taille)
{
if(champ.value.length > taille) {
alert ('TROP de caractere');
// ici on bloque la taille, sinon il ajoute le caractere quand meme.
champ.value = champ.value.substr(0, taille);
}
}
</SCRIPT>
...
<TEXTAREA name="TA" OnKeyPress="limite(this,tailleTA-1)" OnChange="limite(this,tailleTA)"></TEXTAREA>

Allez courage :)

-= Bobinours =-
0
tomjp Messages postés 1 Statut Membre > Bobinours Messages postés 2903 Statut Membre
 
bonjour,

Désolé mais ton script java pour limiter le nombre de caractères correspond à ce que je cherche, je l'ai intégré dans ma page mais je ne parviens pas à le faire fonctionner. Je n'y connait rien en java
est-ce qu'il aurait quelque chose d'évident pour ceux qui connaissent et que tu n'as pas mis dans ta démo qui fait que ne l'ayant pas intégré çà empêche le script de fonctionner chez moi (une déclaration javascript ou autre)??.

Je voudrai aussi savoir comment conserver la sélection faite par un utilisateur lorsque le formulaire se réaffiche. Aurais-tu une idée la-dessus.

Merci d'avance.
0
RiKé Messages postés 45 Statut Membre > tomjp Messages postés 1 Statut Membre
 
Salut,

Pour le script qui ne marche pas, envoie moi ton code que je regarde... pas facile de te répondre comme ça....

Pour réafficher tes données après validation du formulaire... plusieurs solutions... qui dépendent de ton language... HTML simple, PHP ou ASP... Lequel utilises-tu ?

Bonne continuation
0
Riké
 
Là c'est vraiment super ! Merci beaucoup pour ton aide.

Bonne continuation
@+
Eric
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
slooptoo
 
pour que le dernier caractere ne s affiche pas il faut tenter un 'return false;' au bon endroit (c est a dire juste avant l alerte)
sinon un 'event.returnValue = false;' peut fonctionner (attention a l objet event qui s appelle Event sur Fx)
0