Mootools Shift-Tab事件问题

时间:2010-01-04 19:00:58

标签: javascript events mootools

我正在使用最新的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();
评估

并将焦点重置为下一个输入字段。因此用户无法回滚到先前输入的数据。我没有发现抓住那个班次事件的可能性。由于按下了两个键,因此触发了两个事件。一个用于“制表符”,另一个用于“移位”。这个事件的event.key.code似乎超出了mootools实现的范围。

有谁可以帮助解决这个问题?

感谢。 杰森

1 个答案:

答案 0 :(得分:1)

您可以为“Shift + Tab”键添加事件

链接:http://mootools.net/docs/more/Interface/Keyboard