Javascript - 在每个按键时从文本框中获取值

时间:2013-08-13 11:34:10

标签: javascript jquery textbox alert onchange

我有一个文本框,我想在每次输入内容时使用其中的数据;一封信。

当输入一个值时,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”。

8 个答案:

答案 0 :(得分:16)

keypress在变更之前发生,是的。 keyup之后发生。请改为倾听。

答案 1 :(得分:4)

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

答案 2 :(得分:4)

使用keyup

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

答案 3 :(得分:2)

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

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

Demo

答案 4 :(得分:0)

使用keyup事件代替 - :

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

答案 5 :(得分:0)

请改用keyup,看一下:

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

答案 6 :(得分:0)

使用keyup代替 这将起作用

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

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

答案 7 :(得分:0)

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

更改为:

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

工作plunk