onkeypress事件没有在ie中发射

时间:2012-02-15 11:02:59

标签: javascript jquery forms

$(".tbSearchBox").keyup(function (event) {
    if (event.keyCode == 13) {
        alert("ye");
        searchSet = $(this).val();
        $(".btnSerachButton").click();
    }
});

我使用上面的代码来检测用户是否在搜索框中输入了某些内容,然后按Enter键而不是按下搜索按钮。这适用于除IE之外的所有浏览器。 IE可以读取on keyup事件但绕过使用的if语句。知道为什么吗?

3 个答案:

答案 0 :(得分:1)

var code = (event.keyCode ? event.keyCode : event.which);

或者甚至

var code = event.keyCode || event.which;

答案 1 :(得分:1)

在事件和键码方面存在一些不兼容性,因此要使浏览器兼容,请尝试使用

$(".tbSearchBox").keypress(function (event) {
    var ev = event || window.event;
    var key = ev.keyCode || ev.which || ev.charCode;
    if (key == 13) {
        ev.preventDefault();
        alert("ye");
        searchSet = $(this).val();
        $(".btnSerachButton").click();
    }
});

答案 2 :(得分:0)

您应该use event.which here规范化event.keyCodeevent.charCode

if (event.which == 13) ...