2013-07-02 6 views
0

par exemple J'ai 3 éléments dans mon code HTML pour la saisie de texte.Tab keyascii en javascript ne fonctionne pas

<input type="text" name="txt1" /> 
<input type="text" name="txt2" /> 
<input type="text" name="txt3" /> 

A première charge, je mis par js de se concentrer txt1. Ma question est, Comment puis-je manipuler keyascii quand j'appuie sur onglet de txt1 à txt3?

Le fait, j'ai ajouté du code js avec jquery pour le faire, mais ça ne marche pas! Il est toujours axé sur txt2. Ceci est mon code js:

$('input[name="txt1"]').keyup(function(e){ 
     if((e.keyWhich || e.keyCode) == 9){ 
      $('input[name="txt3"]').focus(); 
     } 
    }); 
+0

'e.preventDefault()' doit faire la magie. Bien que vous puissiez utiliser aussi l'attribut 'tabindex' pour votre' input's. – Teemu

+0

@teemu où je devrais placer celui-là? –

+0

n'est-ce pas "e.which" plutôt que "e.keyWhich"? – mohkhan

Répondre

2

Écoutez keydown et utilisez e.preventDefault() pour empêcher le comportement par défaut. Le comportement par défaut pour appuyer sur tab est exécuté avant que l'événement keyup ne soit déclenché. C'est pourquoi vous devez utiliser keydown à la place.

$('input[name="txt1"]').keydown(function(e){ 
    if((e.keyWhich || e.keyCode) == 9){    
     e.preventDefault(); 
     $('input[name="txt3"]').focus(); 
    } 
}); 

Voir cette Fiddle

+0

Mais je ne peux rien taper dans ** txt1 ** sauf ** onglet ** avec l'effet .. –

+0

Ups, mis à jour ma réponse et le violon :-) –

+0

Avez-vous trouvé la bonne réponse frère? Je ne peux pas ouvrir le violon causé quelque chose de mal avec ma connexion –

1

Vous devriez écouter keydown à la place et être en utilisant e.preventDefault()

Exemple:

$('input[name="txt1"]').keydown(function(e){ 
    if((e.keyWhich || e.keyCode) == 9) { 
     e.preventDefault(); 
     $('input[name="txt3"]').focus(); 
    } 
}); 

See on JSFiddle

Documentation of preventDefault

+0

Mais je ne peux rien taper dans ** txt1 ** sauf ** onglet ** avec l'effet .. –

+0

Désolé à ce sujet. Total brainfart de moi. Le preventDefault devrait avoir été enveloppé dans votre conditionnel qui a vérifié la clé de tabulation. Actualisé. – rkj