0

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

例如:以前的文字:Bhumi 新的文字:Bhumik

这是正在键入的 K 我应该知道内容已更改。这种检测需要在 keyPress 事件上进行。

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

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

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

4

4 回答 4

0

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

$('div').on('keypress keyup keydown', function(){
   console.log($(this).text());
});
于 2013-04-10T07:02:15.063 回答
0

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

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

(请参阅jQuery 事件按键:按下了哪个键?

于 2013-04-10T06:53:05.490 回答
0

试试这个代码..

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

您可以使用 keypress 、keydown 或 keyup。,有关 Javascript 键事件的更多信息,请单击此处

于 2013-04-10T06:54:49.457 回答
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);
});
于 2021-06-28T16:56:43.430 回答