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.