【问题标题】:Javascript - get value from textbox at every keypressJavascript - 在每次按键时从文本框中获取值
【发布时间】:2013-08-13 11:34:10
【问题描述】:

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

发生的情况是,当输入一个值时,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”。

【问题讨论】:

    标签: javascript jquery textbox alert onchange


    【解决方案1】:

    keypress 发生在更改之前,是的。 keyup 发生在之后。不如听听。

    【讨论】:

      【解决方案2】:

      使用keyup

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:

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

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

          Demo

          【讨论】:

            【解决方案5】:

            改用keyup 事件-:

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

            【讨论】:

              【解决方案6】:

              改用keyup,看看这个:

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

              【讨论】:

                【解决方案7】:

                改用 keyup 会起作用的

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

                【讨论】:

                  【解决方案8】:

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

                  改为:

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

                  工作plunk

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2022-11-29
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    相关资源
                    最近更新 更多