11540 sujets

JavaScript, DOM et API Web HTML5

Bonjour,
Pour commencer, je précise que l'utilisation du forum est pour moi de dernier recours et que j'ai donc naturellement déjà fais des recherches avant de vous poser la question suivante:
- Comment faire varier dynamiquement le contenu d'un élément selon la valeur d'un input ?
Techniquement, ça, je sais le faire, ce qui m'embête, c'est le caractère "dynamique" de la chose, il faut un genre de fonction qui s'exécute en permanence, j'ai essayé tout un tas de trucs: setInterval(), boucle while (idée de m****), boucle for (idée de m**** aussi).
L'essai le plus proche de ce que je recherche est celui où j'ai employé l'événement onkeypress, le problème c'est qu'en utilisant cet évènement, l'élément a toujours un caractère en retard par rapport à l'input et ne se met pas à jour quand on presse la touche suppr.

Voilà, pour le moment mon code:
function dynamicvalue(element) {
	var content = document.getElementById('valueindicator-'+element).value;
	if(!content) {
		document.getElementById('menu-name-'+element).innerHTML=\'<a style="color:#949494;">Menu inutilisé</a>\';
	}
	else {
		document.getElementById('menu-name-'+element).innerHTML=content;
	}
}
<li id="menu-name-0"></li>
<li id="menu-name-1"></li>
<li id="menu-name-2"></li>
<li id="menu-name-3"></li>
<li id="menu-name-4"></li>
<li id="menu-name-5"></li>
<li id="menu-name-6"></li>

<li><input type="text" id="valueindicator-0" onkeyPress="dynamicvalue('0');"/></li>
<li><input type="text" id="valueindicator-1" onkeyPress="dynamicvalue('1');"/></li>
<li><input type="text" id="valueindicator-2" onkeyPress="dynamicvalue('2');"/></li>
<li><input type="text" id="valueindicator-3" onkeyPress="dynamicvalue('3');"/></li>
<li><input type="text" id="valueindicator-4" onkeyPress="dynamicvalue('4');"/></li>
<li><input type="text" id="valueindicator-5" onkeyPress="dynamicvalue('5');"/></li>
<li><input type="text" id="valueindicator-6" onkeyPress="dynamicvalue('6');"/></li>

Voilà voilà, merci de votre aide Smiley smile
Modifié par juliendargelos (12 Feb 2013 - 09:30)
Hum, pas tout à fait, je voudrais que le contenu de l'élément réagisse dynamiquement, onchange ne s'applique que lorsque l'input n'est plus focus.
Mais merci quand même Smiley smile
Il te suffit d'utiliser

onkeyUp

L’événement se déclenche quand tu relâches une touche. Donc bien adapté pour ton besoin, il n'y aura pas de manque de lettre.
Modifié par canvasdev (13 Feb 2013 - 14:49)
Merci de m'avoir mis sur la piste Smiley biggrin : J'ai finalement opté pour onkeydown (la même chose mais en plus réactif puisqu'il a lieu quand la touche est pressée, alors que onkeyup a lieu quand la touche a fini d'être pressée)

Bon, bah c'est réglé, merci canvasdev ^^
Modifié par juliendargelos (14 Feb 2013 - 17:20)