Simuler un tab key press

Signaler
Messages postés
2
Date d'inscription
mercredi 16 août 2006
Statut
Membre
Dernière intervention
2 novembre 2009
-
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
-
J'ai un problème avec une application de gestion de données. Je dois faire des déplacements dans des tableaux généré dynamiquement  (tabindex généré dynamiquement aussi) et ce de façon vertical. mais les utilisateur ne veulent pas utiliser le tab ( trop loin lorsqu'on fait de l'entré de données). Je voudrais utiliser la touche "enter" du clavier numérique pour simuler un tab.
 je n'ai rien trouver qui fait vraiment le travail. Changement de focus au prochain control et préselection du texte inclus si il y a lieu.
Merci de vos conseils.
A voir également:

2 réponses

Messages postés
626
Date d'inscription
samedi 28 septembre 2002
Statut
Membre
Dernière intervention
18 mai 2009
3
Salut,

Je te proposes ma solution mais il y en a peutêtre d'autres :
Ajoutes à chaques cellules l'evenement 'keypress' qui executera la fonction 'handleKeyPress' :

function handleKeyPress(event){
    if(event.keyCode==27){
        //ici ton script qui passe d'une ligne à l'autre
    }
}

Pour le 27, je mélange toujours la touche Enter et Echap. Si ce n'est pas la bonne valeur, essaie avec 13.
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
35
Bonjour,

    ce serait probablement plus long à t'expliquer comment faire, que le faire....
    alors un ch'tit exemple....

<html>
    <head>
        <title>Touche entrée</title>
    </head>
   
        <form name="frm">
                            ----
,
                    ,
               
                ----
,
                    ,
               
                ----
,
                    ,
               
          

        </form>
        <script type="text/javascript">
            var t=document.getElementById("tableau");
            var NbCol=t.rows[0].cells.length;
            function touche_entree( e, champ )
            {   if(window.event)    {    e = window.event;    }
                if ( e.type=="keypress" && e.keyCode==13 )
                {   var r=champ.No+NbCol;
                    if (r>=document.frm.t1.length)
                    {    r=champ.No%NbCol; }
                    document.frm.t1[r].select();
                    document.frm.t1[r].focus();
                }
            }
            var c;
            for ( var n=0; n < document.frm.t1.length;n++ )
            {   c=document.frm.t1[n];
                c.No=n;
                c.onkeypress = function(event)
                {    touche_entree(event, this);    }
            }
        </script>
   
</html>

   
    à toi d'adapter, car on n'a pas toutes les billes.
            avec tabIndex ou rowIndex/cellIndex ou ce qu'il est possible,.... si nécessaire !
         
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]