Balise <Textarea>
RiKé
-
slooptoo -
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
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
-
Pas à ma connaissance (cf http://www.allhtml.com/langages/balise/textarea.php3)
Par contre, tu dois pouvoir faire ça en javascript -
Seul un javascript peut faire ça ... car ce n'est pas prévu dans la norme HTML 3.2 ...
-
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
@+- 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 =-
-
-
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...
@+-
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 =-- 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. - 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
-
-
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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)