Я использую самый последний выпуск moo и пытаюсь написать функцию, которая оценивает данное пользователем выражение для события "keyup". Как только мои тесты пройдут, я автоматически сфокусируюсь на следующем элементе ввода, чтобы повысить удобство и скорость работы пользователя, поскольку он многократно использует форму.
Итак, я придумал что-то вроде этого:
var getNextInputElement = function(element){
returns the next input element
}
var checkDay = function(event){
var input = $('booking_day').get('value');
if (input.length > 1 && input < 32) {
$('booking_day').erase('class');
if (!(event.key == "tab")) {
getNextInputElement($('booking_day')).focus();
}
else {
$('booking_day').focus();
}
}
else if(input.length > 1) {
$('booking_day').set('class','error');
}
else {
$('booking_day').erase('class');
}
};
window.addEvent('domready', function() {
$('new_booking').reset();
$('booking_day').addEvent('keyup', checkDay);
$('booking_day').focus();
});
Пока работает отлично. Но если я попытаюсь вернуться на свое поле ввода "shift-tab"
getNextInputElement($('booking_day')).focus();
оценивается и фокус сбрасывается на следующее поле ввода. Таким образом, пользователь не может выполнить откат к ранее введенным данным. Я не нахожу никакой возможности поймать это событие Shift-Tab. Поскольку нажаты две клавиши, происходит два события. Один для «вкладки» и второй, но не для «сдвига». Кажется, что event.key.code этого события находится вне области, которую реализует mootools.
Кто-нибудь может помочь с этой проблемой?
Спасибо.
Jason