我有以下代码:http://jsfiddle.net/juqc24ux/

<input type="text" placeholder="Enter your number here..." id="resultTextBox">

$('#resultTextBox').keypress(function() {
    alert($('#resultTextBox').val());
}) // end keypress


我不知道我要怎么做。我想在按下按钮后获取文本框的值。但是,这不会发生。

按“ 1”后,将弹出一个空警报,然后将“ 1”输入键盘。然后,当我按“ 2”按钮后,弹出带有“ 1”的警报。

为什么会发生这种情况?从某种意义上说,如何解决该问题:按“ 1”后,它进入文本框,然后显示在警报中?我很确定这与执行代码的优先级有关,只是我不确定如何解决此问题。

更新:你们中有些人指出“ keyup”有效。但是为什么它能正常工作,而按键却不能工作呢?

最佳答案

当用户首次按下键盘上的键时,keypress事件将发送到元素。

当用户释放键盘上的键时,keyup事件将发送到元素。

使用keyup instaed。像下面。



$('#resultTextBox').keyup(function() {
    alert($(this).val());
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" placeholder="Enter your number here..." id="resultTextBox">

09-28 13:48