Проблема события Mootools Shift-Tab - PullRequest
0 голосов
/ 04 января 2010

Я использую самый последний выпуск 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

1 Ответ

1 голос
/ 04 января 2010

Вы можете добавить событие для обеих клавиш «Shift + Tab»

Ссылка: http://mootools.net/docs/more/Interface/Keyboard

...