我有一个输入文本,我想在默认事件处理程序
之后运行我的函数<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
活动中做了一些工作,但我不想这样做。
谢谢,请考虑我是非常新手。
答案 0 :(得分:1)
TRIVIAL SOLUTION:
您应该使用oninput
代替onkeypress
。像这样:
<input type="text" oninput="myfunction(event)" />
按下某个键时会发出keypress
事件,即之前使用按下的键值修改DOM。这就是为什么你从来没有得到最后一把钥匙的价值。
将数据输入input
元素时会发出input
事件。所以我们可以通过读取元素的值来访问数据。
使用事件绑定:
<input id="input_field" type="text" />
$(document).ready(function() { $("#input_field").on("input", function() { console.log($(this).val()); }); });
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。