我有这段代码:http://jsfiddle.net/juqc24ux/
<input type="text" placeholder="Enter your number here..." id="resultTextBox">
$('#resultTextBox').keypress(function() {
alert($('#resultTextBox').val());
}) // end keypress
我不知道自己错了什么。我想在按下按钮后获取文本框的值。但是,这不会发生。
在我按下&#39; 1&#39;后,会弹出一个空警告,然后是&#39; 1&#39;进入键盘。然后,在我按下,然后说出&#39; 2&#39;之后,用&#39; 1&#39;弹出。
为什么会发生这种情况?如何解决这个问题,在我按下&#39; 1&#39;后,它会进入文本框,然后它会显示在警报中?我很确定它与执行代码的优先级有关,只是我不知道如何解决这个问题。
更新:有些人指出&#39; keyup&#39;作品。但是为什么它起作用而且按键没有?
答案 0 :(得分:1)
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">
答案 1 :(得分:0)
Keshress在字母输入文本框之前执行。以这种方式思考这个过程:
keypress
事件触发keyup
事件触发这就是为什么在输入1之后警报出现空白并且仅显示&#39; 1&#39;之后输入2。它只能在按键之前提醒文本框中显示的内容其他任何可能发生的事情,包括在文本框中输入数字。
答案 2 :(得分:0)
<input type="text" placeholder="Enter your number here..." id="resultTextBox">
$(document).ready(function() {
$('#resultTextBox').keyup(function() {
alert($('#resultTextBox').val());
}) // end keypress
});
</script>
或者如果你想要
的另一种方法<input type="text" placeholder="Enter your number here..." id="enternum">
<input type="text" placeholder="show result" id="resultTextBox">
<script>
$('#enternum').keypress(function() {
$('#resultTextBox').val($('#enternum').val());
})
</script>