|
|
|
|
Salut,
|
TEXTAREA est la Balise qui s'applique plus particulièrement à la création d'une zone de saisie qui se présente comme une petite fenêtre avec la possibilité de visualiser tout le texte que l'on a tapé, et apporte une solution au problème soulevé dans le paragraphe de Maxlength.
|
LimiterTextArea('commentaire', 10, 'controle_decompte');
Tu remplaces le 10 par le nombre de caractères que tu veux mettre. <textarea id="commentaire" name="commentaire" class="limiter" cols="30"></textarea> Tu remplaces 30 par le nombres de caractères que tu veux par lignes. Ainsi si tu mets cols="30" et que tu mets 300 dans LimiterTextArea ça te fera 10 lignes. Tu vois? |
Répondre à Sky34gl3
|
nEm3sis et Sky34gl3 , je vous aime ! Merci beaucoup vous me sauvez la vie !
<script>
var nbDeLigne = 3;
var nbCarLigneMax = 20;
function fnct_textarea(p){
var nb = 1;
for (var i=0; i<p.value.length; i++){
if (p.value.charCodeAt(i)==10) {
nb++;
}
if (nb>nbDeLigne) {
alert('Vous avez dépassé le nombre maximum de lignes autorisé ('+nbDeLigne+')')
p.value = p.value.substring(0,i);
break;
}
var nbligneMax = nb*nbCarLigneMax;
if (nbligneMax<p.value.length) {
alert('Vous avez dépassé le nombre maximum de caractères par ligne autorisé ('+nbligneMax+')')
p.value = p.value.substring(0,i);
break;
}
}
}
</script>
Merci beaucoup !!!!! |
Sinon,
<script>
var nbDeLigne = 3;
var nbcarmax = nbDeLigne*30;
function fnct_textarea(p){
var nb = 1;
var nbcar = 0;
var s= '';
for (var i=0; i<p.value.length; i++){
if (p.value.charCodeAt(i)==10) {
nb++;
if (nb>nbDeLigne) {
alert('vous avez dépassé le nombre max de ligne autorisé ('+nbDeLigne+')')
p.value = p.value.substring(0,i);
break;
}
}else{
nbcar++;
if (nbcar>nbcarmax) {
alert('vous avez dépassé le nombre de caractere max autorisés ('+nbDeLigne+')')
p.value = p.value.substring(0,i);
break;
}
}
}
}
</script>
<textarea cols=30 rows=20 onKeyUp="fnct_textarea(this)"></textarea>
Ce que j'ai mis en gras est le nombre de caractères par ligne que tu veux. L'attribut rows permet de choisir le nombre de lignes que ton textarea peut supporter. Et tu as juste à changer la valeur de nbDeLigne pour choisir combien de lignes max tu veux. |
Les attributs rows et cols ne sont la que pour la taille du textarea ils ne limitent rien
<script>
var nbDeLigne_ = 3;
var nbCharParLigne_ = 5;
function fnct_textarea(p){
var nbDeLigne = 1;
var nbCharLigne = 0;
var texte = p.value;
for (var i=0; i<texte.length; i++){
if (texte.charCodeAt(i)==10) {
nbDeLigne++;
nbCharLigne=0;
if (nbDeLigne>nbDeLigne_) {
p.value = texte.substring(0,i);
alert('vous avez dépassé le nombre max de ligne autorisé ('+nbDeLigne_+')');
break;
}
}else{
nbCharLigne++;
if (nbCharLigne>nbCharParLigne_) {
for (var j=i; (j<texte.length)&&(texte.charCodeAt(j)!=10); j++){}
p.value = texte.substring(0,i) + texte.substring(j);
alert('vous avez dépassé le nombre max de caractère par ligne autorisé ('+nbCharParLigne_+')');
break;
}
}
}
}
</script>
<textarea cols=200 rows=50 onKeyup="fnct_textarea(this)"></textarea>
par contre ya plusieurs trucs sur lesquels j'ai hésité donc je te le dis ici pour si tu veux que le modifie le script dans mon exemple j'ai mis le nombre max de lignes a 3 donc si une 4è ligne est ecrite j'en fait quoi ? -je la supprime (c'est ce que j'ai mis actuelement) -je la selectionne (pour montrer ou est le problème) pareil pour le nombre de caractère par ligne je peux les sélectionner ou les supprimer au choix edit: tien Sky34gl3 t'as posté pendant que j'écrivais je vais tester ton code pour voir la différence avec le mien et par rapport à ce que tu as dit mon code marche autant avec des espaces que des caractères (puisque un espace est un caractère) edit 2: le problème avec ta version c'est que ça ne compte pas le nombre de caractères par ligne mais le nombre total |
J'aurais pas du me baser sur IE encore une fois -_-. Et toi ton code tu l'as peut-être pas testé sur IE 7 car pour la première ligne pas de souci. Mais sur la deuxième, après avoir fait Entrée sur la première ligne, tu fais une série de mêmes lettres. Regarde ce que ça te donne.
|
Bonjour,
|
Répondre à Sky34gl3
|