Javascript 如何在文本字段上触发退格?

Javascript 如何在文本字段上触发退格?,javascript,jquery,triggers,keycode,backspace,Javascript,Jquery,Triggers,Keycode,Backspace,假设我有这个: <textarea id="myarea">Hello</textarea> 我需要模拟某人实际按下键盘上的“backspace”键。 谢谢您可以创建按键按下事件: var e = jQuery.Event("keydown", { keyCode: 20 }); 然后在文本区域触发它: $("#myarea").trigger( e ); 更新: 在做了更多的研究和测试之后,我意识到这个解决方案不会模拟HTML元素上的自然的按键事件。此方法仅触发k

假设我有这个:

<textarea id="myarea">Hello</textarea>
我需要模拟某人实际按下键盘上的“backspace”键。
谢谢

您可以创建按键按下事件:

var e = jQuery.Event("keydown", { keyCode: 20 });
然后在文本区域触发它:

$("#myarea").trigger( e );
更新:

在做了更多的研究和测试之后,我意识到这个解决方案不会模拟HTML元素上的自然的按键事件。此方法仅触发keydown事件,它不会复制用户进入元素并按下该键

要模拟用户进入该文本框并按下该键,您必须创建一个

分派事件也不受全局支持。您最好触发keydown事件,然后按预期更新文本区域。

我发现:

(答案2)

像这样的东西应该有用,或者至少给你一个想法:

<div id="hola"></div>

演示:

您不应该在js中强制执行关键事件。尝试模拟角色移除

const start = textarea.selectionStart - 1;
const value = textarea.value;
const newValue = value.substr(0, start) + a.substr(start);
textarea.value = newValue;

或者,如果您只是想要该事件,则直接调用处理程序,而不是强制执行该事件。这太黑了。

你的意思是当他试图键入“删除”时,还是当他单击“重置”按钮或以退格方式删除文本时?你没有做错什么。阅读更新后的帖子了解更多信息
$(function(){
    var press = jQuery.Event("keyup");
    press.ctrlKey = false;
    press.which = 40;

    $('#hola').keyup(function(e){
        alert(e.which);
    })
   .trigger(press); // Trigger the event
});
const start = textarea.selectionStart - 1;
const value = textarea.value;
const newValue = value.substr(0, start) + a.substr(start);
textarea.value = newValue;