按Enter键时防止默认不起作用

时间:2013-04-16 15:57:52

标签: javascript jquery

我的asp.net控件看起来像这样;

<asp:Button ID="btnLogOut" runat="server" Text="Exit" ClientIDMode="Static" OnClick="btnLogOut_Click" />

和js事件;

 $("#btnLogOut").keyup(function (event) {
    if (event.which == 13 || event.keyCode == 13) {
        alert(event.keyCode);
        $("#btnLogOut").preventDefault();
        return false;
    }
    else return true;
});

在页面上,当我按下回车键时,它会触发btnLogOut按钮。为了防止这种情况 我写了上面的js事件。 alert表示keyCode为13,但它没有阻止点击功能,我退出了。

我该如何解决这个问题?这尤其发生在IE

修改:event.preventDefault也无效。

6 个答案:

答案 0 :(得分:6)

preventDefault()是Event对象(event)的一种方法,因此您需要在其上调用它:event.preventDefault()

但是,在keyup事件中,密钥已经处理,因此阻止事件没有意义。请改为keydown

答案 1 :(得分:3)

您无法取消keyup fase, keydown

并使用event.preventDefault();

答案 2 :(得分:2)

您应该使用event.preventDefault();而不是在对象本身上调用preventDefault()

答案 3 :(得分:2)

preventDefault与事件对象

一起使用
$("#btnLogOut").keyup(function (event) {
    if (event.which === 13 || event.keyCode === 13) {
        alert(event.keyCode);
        event.preventDefault();
        return false;
    }
    else return true;
});

答案 4 :(得分:1)

哟需要使用event.preventDefault()

答案 5 :(得分:1)

尝试将$("#btnLogOut").preventDefault();更改为event.preventDefault();