javascript - 如何预测 DOM keydown 是否会导致字符输入

标签 javascript dom keydown keyevent

给定浏览器中的 keydown 事件,我如何预测该按键事件是否会导致字符输入?例如,点击向左箭头不会输入字符,但点击 a 键会输入 A(除非 ctrlalt 按下)。

我不需要知道将输入什么字符,只需要知道按键事件是否会导致输入。

我的目标是 Chrome。如果您的解决方案适用于 IME,则可获得奖励积分。

注意:我询问的是 keydown 事件,而不是 keypressoninput 等下游事件。

最佳答案

有一个 HTML 5 事件:input。 MDN:https://developer.mozilla.org/en-US/docs/Web/Reference/Events/input 。除此之外没有合适的解决方案。

好的,我想我有一个解决方案。我不知道它有多好,但它确实有效。看看:http://jsfiddle.net/tLPsL/

它基本上是保存输入的值onkeydown并在onkeyup中检查它。

$('#sattar').keydown(function() {
    window.SATTAR = $(this).val();
});

$('#sattar').keyup(function() {
    if(window.SATTAR !== $(this).val()) {
        alert("changed");
    }
});

关于javascript - 如何预测 DOM keydown 是否会导致字符输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17124656/

相关文章:

javascript - 向下滚动时如何向上移动文本?

javascript - Python 请求从 GET 运行 JS 文件

html - Chrome 检查器中嵌套的 IFrame 元素上的 "Copy as HTML"

javascript在集合中按标题搜索节点并返回它

javascript - Keydown 脚本仅在将脚本代码放置在输入框下方时才起作用?

javascript - Google Charts - 折线图工具提示中的格式化日期

javascript - JQuery Post 不适用于 IE8 + 9

perl - 如何在 Perl WWW::Mechanize 中处理一个简单的循环?

javascript - jQuery:在 Tab 键上触发事件

jQuery animate() 使用 keydown 进行平滑