Javascript - 我可以在" onkeypress"的默认处理程序之后运行我的事件处理程序。事件?

时间:2016-06-07 04:07:57

标签: javascript

我有一个输入文本,我想在默认事件处理程序

之后运行我的函数
<input type="text" onkeypress="myfunction()"></input>

功能

function myfunction(){alert($("input")[0].value)}

因为myfunction()正在使用输入value,并且在默认处理程序运行并更改它之后将更改此属性。 示例:如果文本字段具有值&#34; 1234&#34; ,我按了键## 5;#34;该功能将提示&#34; 1234&#34;不是&#34; 12345&#34;

所以,我希望首先运行默认函数来更改value属性,然后我可以在myfunction()

中使用它

我可以这样做吗?!

 onkeypress="default();myfunction()"

我通过将myfunction()放入 onkeyup 活动中做了一些工作,但我不想这样做。

谢谢,请考虑我是非常新手。

1 个答案:

答案 0 :(得分:1)

TRIVIAL SOLUTION:

您应该使用oninput代替onkeypress。像这样:

<input type="text" oninput="myfunction(event)" />

按下某个键时会发出keypress事件,即之前使用按下的键值修改DOM。这就是为什么你从来没有得到最后一把钥匙的价值。

将数据输入input元素时会发出input事件。所以我们可以通过读取元素的值来访问数据。

使用事件绑定:

  1. HTML
  2. <input id="input_field" type="text" />

    1. 的jQuery
    2. $(document).ready(function() {
          $("#input_field").on("input", function() {
          console.log($(this).val());
        });
      });
      
      1. Pure JS
      2.     var input_field = document.getElementById("input_field");
            input_field.addEventListener("input", function(event) {
                console.log(event.target.value);
            });
        

        注意: HTML后的脚本标记中添加此内容,或使用window.onload模拟$(document).ready的行为。

        有关事件绑定如何工作的详细信息,请参阅此SO answer