Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# Exécuter le bon script avec la touche Return

Envoyé par : thx1138

Date : 22/10/2007 14:52

Bonjour,

Soit un écran comprenant 3 zones. Chaque zone comprend 5 textbox (pour l'exemple)

Chaque zone a son propre bouton valider.

Comment faire pour que lorsque j'appuie sur la touche ENTER dans la zone 1 (dans 1 des 5 textbox), le script du bouton valider 1 se déclenche et que lorsque je suis dans la zone 2 ce soit le script du valider 2 qui se déclenche.

La méthode que j'ai utiliser fonctionne mais n'est pas très pro. A chaque focus d'un textbox, je met 1, 2 ou 3 dans une variable Global.

Y'a t'il plus intelligent car ma méthode est fastidieuse pour les écrans chargés ?

merci

# Re: Exécuter le bon script avec la touche Return

Envoyé par : Zolt

Date : 08/11/2007 01:20

Plus intelligent/propre je ne sais pas, mais tu peux associer un id style "textbox-1" à la textbox et un autre "textbox-1-validation" au bouton. Il suffit après de récupérer l'id de la textbox qui a le focus et d'y ajouter la string "-validation" et tu as l'id du bouton à activer.

Pas sur que ce soit plus propre par contre.

# Re: Exécuter le bon script avec la touche Return

Envoyé par : thefab

Date : 08/11/2007 13:03

Pour ma part je ferais quelque chose du genre: englober toutes les textbox dans un conteneur et placer un onkeypress sur celui-ci.

<script type="application/x-javascript">
function valider(e)
	{
	if (e.keyCode == 13)
		{
		switch (e.explicitOriginalTarget.id)
			{
			case "textbox1":
				 valider1(e.explicitOriginalTarget.value);
				break;
			case "textbox2":
				 valider2(e.explicitOriginalTarget.value);
				break;
			}
		}
	}
function valider1(valeur)
	{
	alert("1: " + valeur);
	}
function valider2(valeur)
	{
	alert("2: " + valeur);
	}
</script>

<box onkeypress="valider(event);">
	<textbox id="textbox1"/>
	<button label="Valider" oncommand="valider1(document.getElementById('textbox1').value);"/>
	<textbox id="textbox2"/>
	<button label="Valider" oncommand="valider2(document.getElementById('textbox2').value);"/>
</box>

Ca fonctionne mais je ne suis pas sur que explicitOriginalTarget soit encore supporté ? (ça marche en tout cas avec Firefox 2.0.0.8).

# Re: Exécuter le bon script avec la touche Return

Envoyé par : thx1138

Date : 11/11/2007 02:14

merci,

je vais regarder ca de plus près.

Mais je pense, que je vais ajouter un paramèrre à ta fonction valider() qui indiquera la zone dans laquel je me trouve

merci beaucoup

# Re: Exécuter le bon script avec la touche Return

Envoyé par : thefab

Date : 12/11/2007 10:25

Mais je pense, que je vais ajouter un paramèrre à ta fonction valider() qui indiquera la zone dans laquel je me trouve

Ben alors valider() ne sert plus à rien... autant appeler directement valider1(), valider2()... :-)

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.