我需要调用一个函数来检查 keyDown事件后表单输入框的值,并且所有相应的回调处理程序都已完成并返回。我知道我需要这个,因为如果我在回调处理程序中放置一个计时器,它在200毫秒左右后检查输入框的值,那么该值是预期的,但如果我检查回调处理程序本身末尾的值,空。
// case 1
$('textbox').keyDown(function(){
...
console.log($(this).val()); // empty, not as expected
});
// case 2
$('textbox').keyDown(function(){
...
var $textbox = $(this);
var timer = setTimeout(function(){
console.log($textbox.val()); // works as expected
clearTimeout(timer);
}, 200);
});
那么,在事件完成后,javascript / jQuery中是否有一种干净的方式来调用函数?
(是的,我知道onChange事件,但我已经尝试了它并且它不适用于这种情况。我正在尝试检测用户定义的键组合,这是一个极端情况。在这个角落的情况下,keyPress和keyUp事件也不会触发,只是keyDown。)
答案 0 :(得分:3)
改为使用keyUp
。 keyDown
在输入之前被触发; keyUp
被解雇了。
答案 1 :(得分:0)
Hello Friend试试看,你会得到它
$('textbox').keyDown(function(e){
...
console.log(String.fromCharCode(e.which));
});
这显示了你按下的键。
希望这能解决您的问题