假设我有这个:
<textarea id="myarea">Hello</textarea>
如何使用 trigger() 和按键代码触发文本区域上的退格键。 退格键的代码是 8。 我不是在寻找这个:
$('#myarea').val( $("myarea").val().slice(0,-1) );
我需要模拟实际按下键盘上的“退格”键。
假设我有这个:
<textarea id="myarea">Hello</textarea>
如何使用 trigger() 和按键代码触发文本区域上的退格键。 退格键的代码是 8。 我不是在寻找这个:
$('#myarea').val( $("myarea").val().slice(0,-1) );
我需要模拟实际按下键盘上的“退格”键。
您可以创建一个键盘按下事件:
var e = jQuery.Event("keydown", { keyCode: 20 });
然后在你的文本区域中触发它:
$("#myarea").trigger( e );
更新:
经过更多的研究和测试,我意识到这个解决方案并没有模拟HTML元素的自然按键事件。该方法仅触发了keydown事件,而无法复制用户进入元素并按下该键的操作。
要模拟用户进入文本框并按下该键,您需要创建一个分派事件
分派事件也不是全局支持的。您的最佳选择是触发keydown事件,然后按预期更新文本区域。
<div id="hola"></div>
$(function(){
var press = jQuery.Event("keyup");
press.ctrlKey = false;
press.which = 40;
$('#hola').keyup(function(e){
alert(e.which);
})
.trigger(press); // Trigger the event
});
你不应该在js中强制使用关键事件。尝试模拟字符删除。
const start = textarea.selectionStart - 1;
const value = textarea.value;
const newValue = value.substr(0, start) + a.substr(start);
textarea.value = newValue;