为什么“keypress”事件处理程序不能始终如一地触发?

时间:2011-09-24 01:18:55

标签: jquery jquery-ui

我遇到了这个功能的问题。我无法正常开火。它确实有效,但是当我突出显示表格中的数量并更改值(该值最初设置为1)时,我的库存水平为20,当我输入21时,除非我按下另一个键,否则它不会显示该消息。我究竟做错了什么?我已经尝试了所有可能的事件,并且无法弄清楚我做错了什么。顺便说一句,这是在jQuery UI对话框中。

$('#qty').live('keypress', function() {
  $('#response').hide();
  if($('#qty').val() > stockLevel) {
    var response = 'You selected more than we have in stock, we have reset your quantity to the maximum number available in stock';
    $('#qty').val(stockLevel);
    $('#response').html(response).show('blind', {}, '200'); 
    return false;
 }
});

谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

keypress事件具有众所周知的不一致行为(因为它没有在任何标准中定义)。在您的情况下,您的事件在浏览器将文本放入文本框之前触发。请改用keyup事件。