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
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.
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).
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
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.