为什么jQuery.keydown
不会触发我输入的第一个字母?
<input id="foo" type="text">
<div></div>
$("#foo").on('keydown', function(e){
$("div").text(this.value);
});
我只看到它在第二个keydown印刷机上烧,而不是第一个。
答案 0 :(得分:3)
当触发keydown
事件时,文本框中的值尚未更改。看起来你正在寻找input
event(使用'input keyup'
来实现向后兼容)。 Updated fiddle
答案 1 :(得分:1)
我不确定您是否在寻找解决方案,但您可以使用:
$("#foo").on('keyup', function(e){
$("div").text(this.value);
});
答案 2 :(得分:0)
如果你真的需要在keydown
事件中进行更新,你可以从看起来像这样的东西开始,但是在很多情况下这将无法按预期工作。您必须使用e.keyCode值
$("#foo").on('keydown', function(e){
var content = $("div").text();
$("div").text(content+String.fromCharCode(e.keyCode));
if (e.keyCode==8) { $("div").text(content.slice(0,-1)); }
});
参见 JSFIDDLE