Oto rozwiązanie wymyśliłem. Problem polegał na tym, że musiałem utrzymywać tabindex, tzn. Musiałem funkcjonować dokładnie tak samo, jak z zakładką. Używa zarówno podkreślnika, jak i jquery.
Zostawiłam w moim debugowanie kodu:
try {
var inputs = $("input[id^=tpVal-]");
var sortedInputs = _.sortBy(inputs, function(element){
var tabIndex = $(element).attr('tabindex');//debugging
var id = $(element).attr('id');//debugging
console.log(id +" | "+ tabIndex +" | "+ $(element));//debugging
return parseInt($(element).attr('tabindex'));
});
$(sortedInputs).each(function (index, element) {
$(element).keyup(function(event){
if(event.keyCode==13) {
var $thisElement = $(element);//debugging
var nextIndex = index+1;//debugging
var $nextElement = $(sortedInputs[nextIndex]);
var thisId = $thisElement.attr('id');//debugging
var nextId = $nextElement.attr('id');//debugging
console.log("Advance from "+thisId+" to "+nextId);//debugging
if($nextElement!=undefined) {
$(sortedInputs[index + 1]).focus();
}
}
});
});
} catch (e) {
console.log(e);
}
Ciekawe, bo odpowiedział na pytanie tak jak ten :) http://stackoverflow.com/questions/4494552/change-enter- od-zgłoszenie-do-tab/4494691 # 4494691. Dodatkowo odradzam to, ponieważ użytkownicy są przyzwyczajeni do używania tabulatora, aby przejść do innego pola, zamiast wpisywać. –
** nie rób tego **. – zzzzBov
Tak, wiem, że nie jest to całkowita liczba, jeśli chodzi o strony internetowe, ale dotyczy to systemu mapowania kodów kreskowych za pomocą skanera kodów kreskowych, który zapisuje się na ekranie w tym formacie "," + kod kreskowy + "ENTER" –