Во всех браузерах поддерживается навигация между элементам страницы по клавишам Tab и Tab+Shift. Иногда возникает необходимость продублировать эту функцию клавишей Enter. Наиболее актуально это для страниц, где пользователю необходимо часто и много вводить информацию. Тогда для удобства на кнопку Enter навешивается обработчик который выполняет тоже самое что происходит по кнопке Tab.
Реализуется это с помощью JavaScript:
$(document).ready(function () {
// Тело функции для Dynamic Action
$('form').on('keydown',':input', (function (e) {
var vKey, vSelf, vType, vInputs, vForm, vTabIndex, vInputArray;
vKey = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
vSelf = $(this);
vType = vSelf.prop('type');
if (vKey == 13 && vType != 'submit' && vType != 'textarea') {
e.preventDefault();
vForm = vSelf.parents('form:eq(0)');
// Sort by tab indexes if they exist
vTabIndex = parseInt(vSelf.attr('tabindex'));
if (vTabIndex) {
vInputArray = vForm.find('[tabindex]').filter(':visible:enabled').sort(function(a, b) {
return parseInt($(a).attr('tabindex')) - parseInt($(b).attr('tabindex'));
});
} else {
vInputArray = vForm.find(':input').filter(':visible:enabled');
}
vIndex = vInputArray.index(this) + 1;
if (vIndex < vInputArray.length) {
move_to = vInputArray.eq(vIndex);
move_to.focus();
move_to.select();
}
return false;
}
}));
// конец обработчика
});
Возможно удобным будет сделать такое поведение для всех страниц приложения. Тогда на cтранице 0 необходимо создать динамическое событие PageLoad и в обработчике вставить код выше за исключением первой и последней строк.