Désactiver la touche de tabulation sur une div spécifique

J’ai la structure suivante:

Some content
Some content

Je veux “désactiver” la touche de tabulation sur div2, je veux dire les éléments de div2 ne recevront pas le focus lorsque la touche de tabulation est enfoncée.

Existe-t-il un moyen simple de créer ce bloqueur de clé d’onglet à l’aide de javascript / jquery?

@ John Ssortingckler a raison. Le comportement de la touche de tabulation peut être modifié avec l’atsortingbut tabindex. C’est l’ordre dans lequel les éléments auront le focus.

Avec

Some content

vous devriez empêcher que le focus soit sur votre div.

Plus d’informations ici: http://www.htmlcodetutorial.com/forms/_INPUT_TABINDEX.html

Il existe un moyen assez simple de le faire, en utilisant la méthode focus() de jQuery. Compte tenu de ce qui suit, HTML simplifié:

 

Et le jQuery:

 $('#second input').focus( function(){ $('#third input:first').focus(); }); 

Démo de JS Fiddle .

Ceci est cependant légèrement simplifié. Si vous affichez votre marge exacte, nous pourrons peut-être offrir quelque chose d’un peu plus… sur mesure?

Dans l’implémentation ci-dessus, cela empêche également que l’ input soit focalisée via l’événement click, ainsi que l’ onglet , ce qui réduit l’utilité, j’imagine.


Édité pour réviser le code ci-dessus, afin de différencier le focus du clic de souris et de l’onglet clavier:

 $('#second input').bind('keyup mouseup', function(e){ if (e.which == 9) { // focus from tab $('#third input:visible:first').focus(); } else if (e.which == 1) { // focus from click return false; } else { alert('God only knows, what buttons are you mashing..?'); } }); 

Révision de la démo de JS Fiddle .