在按键事件期间检测未来的文本

时间:2013-04-10 06:48:46

标签: javascript jquery keyboard keypress

我有一个可编辑的div,我需要在输入最新的密钥之前将输入的文本与其内容进行比较。

例如:  上一篇文章:Bhumi  新文:Bhumik

以下是正在键入的K我应该知道内容已经更改。此检测需要在keyPress事件上完成。

然而,当我在每个按键时我的console.log的div的html然后最后的console.log是“Bhumi”,即。在'k'按键上,内容仍然没有注册K.这仅在keyup上添加。无论如何,我可以检测到未来的内容可能是什么,以便在每个按键上我得到我将在keyup上的内容???

另外,我不是只处理一行而是处理多行。

编辑::: 我不需要输入字符。假设我有10行,我可以在每个按键时预测一行的最终内容,然后将以前的文本与未来的预测文本进行比较,我可以知道用户当前在哪一行输入。

5 个答案:

答案 0 :(得分:0)

您可以从事件对象中读取按下的键。

var code = (e.keyCode ? e.keyCode : e.which);
if(code == 13) { //Enter keycode
    //Do something
}

(见jQuery Event Keypress: Which key was pressed?

答案 1 :(得分:0)

试试这段代码..

$("#divId").keypress(function (e) {
            var keycode = e.keycode ? e.keycode : e.which;         
              }
        });

您可以使用按键,键控或键盘。有关Javascript键事件的详情,请点击 here

答案 2 :(得分:0)

您可以尝试使用.on()处理程序的多个嵌套键事件:

$('div').on('keypress keyup keydown', function(){
   console.log($(this).text());
});

答案 3 :(得分:0)

您可以通过获取新字符将被插入的位置来生成未来值:

$('input').bind('keypress',function (){
    var value = e.target.value,
        idx = e.target.selectionStart,
        key = e.key;
        value =  value.slice(0, idx) + key + value.slice(idx + Math.abs(0));
    return yourfunction(value);
});

答案 4 :(得分:-1)

相关答案

How to get text of an input text box during onKeyPress?

OnkeyPress通常你不会得到“价值”,但你会得到按键的字符代码