Simuler un tab key press

jokerss16 Messages postés 2 Date d'inscription mercredi 16 août 2006 Statut Membre Dernière intervention 2 novembre 2009 - 31 mars 2008 à 16:49
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 - 31 mars 2008 à 17:46
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.

2 réponses

XtremDuke Messages postés 626 Date d'inscription samedi 28 septembre 2002 Statut Membre Dernière intervention 18 mai 2009 4
31 mars 2008 à 17:25
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.
0
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
31 mars 2008 à 17:46
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]
0