Généralement, lorsque l'utilisateur visite une page web et appuie sur le bouton TAB du clavier, la sélection se déplace d'un élément à un autre en commençant depuis le début de la page.
Je suis à la recherche d'une solution pour passer entre deux zones de texte particulières en appuyant sur le bouton TAB du clavier avec un focus initial sur la première lorsque la page web est chargée. Tous les autres éléments de la page doivent être ignorés pour cet événement de pression de la touche TAB.
Comment puis-je réaliser cela?
Merci pour votre aide!
\= Mise à jour =
J'ai réussi à le faire fonctionner sous Firefox 12.0. IE et Chrome ne fonctionnent pas correctement. En supposant que les IDs des zones de texte sont #ICCID et #MSISDN, le JQuery ressemble à ceci :
$(function() {
$(document).ready(function() {
$("#ICCID").focus();
});
var $inp = $('.cls');
$inp.bind('keydown', function(e) {
var key = e.which;
if (key == 9) {
e.preventDefault();
var nxtIdx = $inp.index(this) + 1;
$(".cls:eq(" + nxtIdx + ")").focus();
//Simuler Enter après TAB
var textInput = $("#MSISDN").val();
var lines = textInput .split(/\r|\r\n|\n/);
if (lines > 1) {
$("#MSISDN").on("keypress", function(e) {
if (e.keyCode == 9) {
var input = $(this);
var inputVal = input.val();
setTimeout(function() {
input.val(inputVal.substring(0,inputVal.length) + "\n");
}, 1);
}
});
}
}
if (key == 9) {
e.preventDefault();
var nxtIdx = $inp.index(this) - 1;
$(".cls:eq(" + nxtIdx + ")").focus();
//Simuler Enter après TAB
$("#ICCID").on("keypress", function(e) {
if (e.keyCode == 9) {
var input = $(this);
var inputVal = input.val();
setTimeout(function() {
input.val(inputVal.substring(0,inputVal.length) + "\n");
}, 1);
}
});
}
});
});