Molto spesso, mentre si compilano i campi di una form html, può venire spontaneo battere il tasto invio senza voler fare il submit della form. Tuttavia, salvo diversi accorgimenti, si ottiene così proprio il submit della form.
In un'applicazione web, in cui vengono inseriti molti dati attraverso la tastiera, può essere utile assegnare al tasto d'invio lo stesso comportamento del tasto tab. Il seguente script, che ho trovato in un post sul forum codeigniter.com, fa uso di jQuery e fa al caso nostro. Ad ogni pressione del tasto invio sui campi di classe "enter" il focus viene spostato al campo successivo (di classe "enter"), a meno che non ci troviamo sull'ultimo campo (di classe "enter").
<script type="text/javascript">
$(document).ready(function(){
$("input").addClass("enter"); //se necessario, rimuovere questa linea e assegnare la class="enter" ai soli campi sui quali si desidera trasformare enter in tab
$("select").addClass("enter"); //se necessario, rimuovere questa linea e assegnare la class="enter" ai soli campi sui quali si desidera trasformare enter in tab
if ($.browser.mozilla) {
$(".enter").keypress(checkForEnter);
} else {
$(".enter").keydown(checkForEnter);
}
});
function checkForEnter(event) {
var lfound = false;
if (event.keyCode == 13) {
var obj = this;
$(".enter").each(function() {
if (this == obj) {
lfound = true
} else {
if (lfound) {
$(this).focus()
$(this).select();
event.preventDefault();
return false;
}
}
});
}
}
</script>
Commenti
Posta un commento