È possibile utilizzare Javascript e acquisire l'evento "keydown" sull'elemento con il "tabindex" più alto. Se l'utente preme il tasto "TAB" (event.keyCode == 9) senza il tasto "Maiusc" (event.shiftKey == false), quindi imposta semplicemente lo stato attivo sull'elemento con il tabindex più basso.
Dovreste anche fare la stessa cosa in senso inverso per l'elemento con il tabindex più basso. Cattura l'evento "keydown" per questo elemento. Se l'utente preme il tasto "TAB" (event.keyCode == 9) CON il tasto "Maiusc" (event.shiftKey == true), quindi imposta lo stato attivo sull'elemento con il tabindex più alto.
Ciò impedirebbe effettivamente che la barra degli indirizzi venga mai messa a fuoco utilizzando il tasto TAB. Sto usando questa tecnica nel mio attuale progetto.
Non dimenticare di annullare l'evento keydown se si preme la combinazione di tasti corretta! Con JQuery è "event.preventDefault()". In Javascript standard, credo che semplicemente "restituisci falso".
Ecco un frammento JQuery carichi sto usando ...
$('#dos-area [tabindex=' + maxTabIndex + ']').on('keydown', function (e) {
if (e.keyCode == 9 && e.shiftKey == false) {
e.preventDefault();
$('#dos-area [tabindex=1]').focus();
}
});
$('#dos-area [tabindex=1]').on('keydown', function (e) {
if (e.keyCode == 9 && e.shiftKey == true) {
e.preventDefault();
$('#dos-area [tabindex=' + maxTabIndex + ']').focus();
}
});
Anche tenere a mente che l'impostazione tabindex = 0 ha risultati indesiderati sul l'ordine in cui si concentrano le cose. Ricordo sempre (per i miei scopi) che tabindex è un indice basato su 1.
fonte
2014-08-23 17:19:59
vorrei lasciare da solo . Una soluzione semplice consiste nel far iniziare la tua app in una finestra popup. Quindi puoi nascondere il campo dell'indirizzo tramite 'location = no'. –