Aquí está la solución que se me ocurrió. El problema que tuve fue que necesitaba mantener el tabindex, es decir, tenía que funcionar exactamente igual que al presionar la pestaña. Utiliza tanto guión bajo como jquery.
he dejado en mi código de depuración:
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);
}
interesante, porque respondió a una pregunta como esta :) http://stackoverflow.com/questions/4494552/change-enter- from-submission-to-tab/4494691 # 4494691. Además, desaconsejaría esto, porque los usuarios están acostumbrados a usar la pestaña para ir a otro campo en lugar de ingresar. –
** no lo hagas **. – zzzzBov
Sí, sé que esto es un total no no cuando se trata de páginas web, pero esto es para un sistema de mapeo de códigos de barras usando un escáner de código de barras, que escribe en la pantalla en este formato "," + código de barras + "ENTER" –