Javascript / Fonction après création textarea
Résolu
jemakaku
Messages postés
11
Statut
Membre
-
jemakaku Messages postés 11 Statut Membre -
jemakaku Messages postés 11 Statut Membre -
Bonjour,
Actuellement débutant en javascript, j'ai honteusement copié du code un peu partout pour arriver à créer une page html destinée à l'étude de mes cours.
RESUME :
Il faudrait que la taille de mes textarea s'adapte automatiquement à leur contenu au moment de leur création.
Actuellement ca fonctionne très bien mais il faut cliquer dessus. (code plus bas)
DETAILS :
Objectif (pas important) : pouvoir afficher/cacher par simple clic le "contenu" d'une hiérarchie (que je crée moi-même)
Par soucis de facilité, j'utilise des textarea pour entrer du texte brut sans devoir me casser la tête avec des <br />
Ces textarea sont crées actuellement avec une taille par défaut et j'aimerais que leurs tailles s'adaptent automatiquement à la création en fonction du contenu par défaut.
La fonction qui adapte le contenu existe et fonctionne très bien. Le problème c'est que pour l'instant il faut cliquer sur le textarea pour qu'elle s'exécute.
J'ai essayé avec un "oninput" pour que ce soit à la création mais hélas, manifestement le contenu est rajouté APRES la création, ce qui fait que le textarea ne s'y adapte pas. (onpropertychange ne fonctionne pas non plus)
CODE :
Merci d'avance pour votre aide! :-)
Jema
Actuellement débutant en javascript, j'ai honteusement copié du code un peu partout pour arriver à créer une page html destinée à l'étude de mes cours.
RESUME :
Il faudrait que la taille de mes textarea s'adapte automatiquement à leur contenu au moment de leur création.
Actuellement ca fonctionne très bien mais il faut cliquer dessus. (code plus bas)
DETAILS :
Objectif (pas important) : pouvoir afficher/cacher par simple clic le "contenu" d'une hiérarchie (que je crée moi-même)
Par soucis de facilité, j'utilise des textarea pour entrer du texte brut sans devoir me casser la tête avec des <br />
Ces textarea sont crées actuellement avec une taille par défaut et j'aimerais que leurs tailles s'adaptent automatiquement à la création en fonction du contenu par défaut.
La fonction qui adapte le contenu existe et fonctionne très bien. Le problème c'est que pour l'instant il faut cliquer sur le textarea pour qu'elle s'exécute.
J'ai essayé avec un "oninput" pour que ce soit à la création mais hélas, manifestement le contenu est rajouté APRES la création, ce qui fait que le textarea ne s'y adapte pas. (onpropertychange ne fonctionne pas non plus)
CODE :
<html> <head> <script type="text/javascript"> function fitToText() { if (this.scrollHeight>this.clientHeight) { this.style.height=(this.scrollHeight+20)+"px"; } else { this.style.height="10px"; this.style.height=(this.scrollHeight+20)+"px"; } } function aff(objet) { if(document.getElementById(objet).style.display == "block") { document.getElementById(objet).style.display = "none"; } else { document.getElementById(objet).style.display = "block"; } } </script> </head> <body> <p><a href=javascript:aff('1.1');>Partie 1 : PROCESSUS (Généralités)</a></p> <div id="1.1";> <p><a href=javascript:aff('1.1.1');>Définition / ce qu'on processus comporte (3) / Les infos concernant un processus. (7)</a></p> <div id="1.1.1";> <textarea id="1.1.1" onclick="fitToText.call(this)">contenu du texte area qui est censé s'adapter a sa création</textarea> </div> </div> </body> </html>
Merci d'avance pour votre aide! :-)
Jema
A voir également:
- Javascript / Fonction après création textarea
- Fonction si et - Guide
- Creation compte gmail - Guide
- Création site web - Guide
- Media creation tool - Télécharger - Systèmes d'exploitation
- Création compte google - Guide
5 réponses
Utiises onload de la balise body:
<body onload="fitToText('montexte')">
....
<textarea name="montexte" id="montexte"> </textarea>
....
</body>
<script language="javascript">
function fitToText(balise_id)
{
balise=document.getElementById(balise_id);
//....
// balise doit remplacer le this
//....
}
</script>
Allah mo3ine
<body onload="fitToText('montexte')">
....
<textarea name="montexte" id="montexte"> </textarea>
....
</body>
<script language="javascript">
function fitToText(balise_id)
{
balise=document.getElementById(balise_id);
//....
// balise doit remplacer le this
//....
}
</script>
Allah mo3ine
Merci pour ta réponse. J'ai appris quelque chose. :-)
Hélàs ca ne fonctionne pas. Ca agit exactement de la même manière qu'avec l'utilisation de "oninput" dans le "textarea". C'est à dire qu'il exécute bien la fonction, mais avant de remplir le "textarea" et donc pour la taille il met presque rien vu que quand il fait le calcul, c'est vide. :-(
Merci d'avoir essayé. :-)
Hélàs ca ne fonctionne pas. Ca agit exactement de la même manière qu'avec l'utilisation de "oninput" dans le "textarea". C'est à dire qu'il exécute bien la fonction, mais avant de remplir le "textarea" et donc pour la taille il met presque rien vu que quand il fait le calcul, c'est vide. :-(
Merci d'avoir essayé. :-)
tu peux faire autre chose,
tu appel la fonction après le code du textarea, comme ça:
<textarea name="montexte" id="montexte">
....
</textarea>
<script language="javascript">
fitToText("montexte"); /* appel de la fonction fitToText, normalement le textarea a déjà sont contenu */
function fitToText(balise_id)
{
//....
}
</script>
tu appel la fonction après le code du textarea, comme ça:
<textarea name="montexte" id="montexte">
....
</textarea>
<script language="javascript">
fitToText("montexte"); /* appel de la fonction fitToText, normalement le textarea a déjà sont contenu */
function fitToText(balise_id)
{
//....
}
</script>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ca marche! :-)
Bon, pas directement, c'est un peu compliqué mais TES propositionS m'ont permis de trouver le problème.
En fait le "oninput" aurait du marcher, donc ta première proposition aurait du marcher aussi. Sauf que tout est caché par défaut à la création du fichier et c'est ca qui empêchait l'exécution correcte de la fonction.
Maintenant, grâce à ta seconde proposition, j'ai pu tester en réaffichant avant que le textarea ne soit créé et là, ta première proposition fonctionne du coup très bien (très pratique d'ailleurs :-)).
Merci beaucoup!
Jema
Bon, pas directement, c'est un peu compliqué mais TES propositionS m'ont permis de trouver le problème.
En fait le "oninput" aurait du marcher, donc ta première proposition aurait du marcher aussi. Sauf que tout est caché par défaut à la création du fichier et c'est ca qui empêchait l'exécution correcte de la fonction.
Maintenant, grâce à ta seconde proposition, j'ai pu tester en réaffichant avant que le textarea ne soit créé et là, ta première proposition fonctionne du coup très bien (très pratique d'ailleurs :-)).
Merci beaucoup!
Jema