5

我有一个文本框,每次输入内容时我都想使用其中的数据;逐个字母。

发生的情况是,当输入一个值时,Javascript 会在该值实际放入文本框之前执行,这意味着它总是落后一个字符。

$(document).ready(
      function() {
          $('#test').keypress(

          function() {
            var value = document.getElementById('test').value;
            alert(value);
          });
      })

<input id="test" type="text"  />

这是发生了什么:

input alert
  w    ""
  e    "w"
  a    "we"
  l    "wea"
  t    "weal"
  h    "wealt"

而我希望它动态发生;即当我输入“w”时,我希望警报立即包含“w”。

4

8 回答 8

16

keypress发生在更改之前,是的。keyup之后发生。改为听那个。

于 2013-08-13T11:35:30.410 回答
4

您应该尝试keyup事件,因为keypress在文本框中输入符号之前发生

于 2013-08-13T11:35:37.667 回答
4

使用键位

$(document).ready(
    function() {
        $('#test').keyup(
            function() {
                var value = document.getElementById('test').value;
                alert(value);
            });
    })
于 2013-08-13T11:36:13.373 回答
2

用于keyup在输入内容后读取有效值。以下是使用 jQuery 的方法:

$(document).ready(function() {
    $('#test').keyup(function() {
        alert($(this).val());
    });
});

演示

于 2013-08-13T11:38:39.807 回答
0

改用keyup事件-:

         $('#test').keyup(    
           function() {
             var value = document.getElementById('test').value;
             alert(value);
          });
于 2013-08-13T11:37:33.000 回答
0

改用keyup,看看这个:

http://jsfiddle.net/gEBc4/1/

于 2013-08-13T11:37:42.627 回答
0

使用 keyup 代替它会起作用

$(document).ready(
      function() {
          $('#test').keyup(

          function() {
            var value = document.getElementById('test').value;
            alert(value);
          });
      })

于 2013-08-13T11:38:43.883 回答
0

尝试使用“keyup”事件而不是“keypress”。

改成:

$(document).ready(
      function() {
          $('#test').keyup(
          function() {
            var value = document.getElementById('test').value;
            alert(value);
          });
      });

工作笨拙

于 2013-08-13T11:39:30.717 回答