Chrome不允许标签防止默认

时间:2013-06-12 18:50:27

标签: javascript jquery preventdefault stoppropagation

我有一个表单,用户可以在其中选项卡并跳转到不同的元素。当它到达一个特殊的锚标签时我就停止了标签。

这是在firefox中运行的代码

    $('.next-tab').keypress(function(e){
        var code = (e.keyCode ? e.keyCode : e.which);
        console.log(code);
        if (code == 0 || code == 9){
            console.log("keypress")
            e.preventDefault();
            e.stopPropagation();
        }
    });

但是这段代码在chrome中不起作用,我不知道为什么,它甚至没有进入keypress方法。 所以我使用此代码进行chrome

$('.next-tab').blur(function(e) {
            var code = (e.keyCode ? e.keyCode : e.which);
            console.log(code);
            if (code == 0 || code == 9){
                console.log("blur")
                e.preventDefault();
                e.stopPropagation();
            }
        });

它进入模糊方法传递条件但不做任何事情,用户可以轻松移动到下一个元素。

1 个答案:

答案 0 :(得分:2)

对于chrome支持,看起来您需要使用keydown事件:

http://jsfiddle.net/qD2rk/

$('.next-tab').keydown(function (e) {
    var code = (e.keyCode ? e.keyCode : e.which);
    console.log(code);
    if (code == 0 || code == 9) {
        console.log("keydown")
        e.preventDefault();
        e.stopPropagation();
    }
});