Jquery Keypress不能用于我的输入框

时间:2010-03-23 18:17:08

标签: javascript jquery

$("#epFilter").keypress(function(){
        query = $("#epFilter").val();
        alert(query);
});

在此代码中,每当我输入文本框时,它总是会提醒一个字符。它没有抓住最后一个角色。为什么呢?

4 个答案:

答案 0 :(得分:5)

改为使用keyup事件。

$("#epFilter").keyup(function(){
        query = $("#epFilter").val();
        alert(query);
});

答案 1 :(得分:4)

当用户按下某个键但在插入该字符之前触发

keypress事件。请改用keyup事件。

答案 2 :(得分:1)

略微改进 Matt的答案(在事件处理程序中使用this):

$("#epFilter").keyup(function(){
    query = $(this).val();
    alert(query);
});

答案 3 :(得分:0)

我想知道这是否是“正常”行为。 keypress不应该类似于keydown + keyup(代码和密钥除外)吗?

我遇到了同样的问题。我有一个输入文本字段,我想在按键上计算总数。但是,在我再次输入另一个字符之前,它不会改变总数(这意味着当我输入第一个数字时它没有更新)。我使用“keyup”并且是“固定的”,但我认为如果我使用按键可能会更好,因为当我按下其他键(如Ctrl,Shift,箭头等)时它不会触发。

根据documentation Keypress应该像我预期的那样工作,但由于某种原因它没有。

这不是答案(所以不要投票)。只是我的贡献。