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 :
<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