输入jQuery

时间:2015-12-15 18:53:47

标签: javascript jquery

我有这段代码: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;作品。但是为什么它起作用而且按键没有?

3 个答案:

答案 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在字母输入文本框之前执行。以这种方式思考这个过程:

  1. keypress事件触发
  2. 键执行正常操作,在这种情况下,将数字1输入文本框
  3. keyup事件触发
  4. 这就是为什么在输入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>