odl*_*dle 14 javascript jquery triggers keycode backspace
说我有这个:
<textarea id="myarea">Hello</textarea>
Run Code Online (Sandbox Code Playgroud)
我如何使用trigger()和键代码在该textarea上触发退格.退格的代码是8.我不是在寻找这个:
$('#myarea').val( $("myarea").val().slice(0,-1) );
Run Code Online (Sandbox Code Playgroud)
我需要模拟某人实际按下键盘上的"退格"键.谢谢
rkw*_*rkw 10
您可以创建一个keydown事件:
var e = jQuery.Event("keydown", { keyCode: 20 });
Run Code Online (Sandbox Code Playgroud)
然后在你的textarea中触发它:
$("#myarea").trigger( e );
Run Code Online (Sandbox Code Playgroud)
更新:
做一些更多的研究和测试后,我意识到,这个解决方案确实不是模仿自然的HTML元素上的按键事件.此方法仅触发keydown事件,它不会复制进入元素并按下该键的用户.
要模拟用户进入该文本框并按下该键,您必须创建一个调度事件
调度事件也不是全局支持的.您最好的选择是触发keydown事件,然后按预期更新文本区域.
我找到了这个:
http://forum.jquery.com/topic/simulating-keypress-events(答案编号2).
这样的事情应该有用,或者至少给你一个想法:
<div id="hola"></div>
Run Code Online (Sandbox Code Playgroud)
$(function(){
var press = jQuery.Event("keyup");
press.ctrlKey = false;
press.which = 40;
$('#hola').keyup(function(e){
alert(e.which);
})
.trigger(press); // Trigger the event
});
Run Code Online (Sandbox Code Playgroud)
演示:http://jsfiddle.net/qtPcF/1/