我需要模拟用户在文本区域中按空格键。代码必须与用户按下按键时完全相同。有任何想法吗?
使用jQuery.trigger()无效,因为它仅触发事件处理程序以按下键,实际上并没有将键“发送”到文本区域。

最佳答案

要在光标所在的位置放置空格,请替换所有选定的文本,并将光标放置在用户已键入该空格的位置(假设文本区域具有焦点):

var myTextarea = document.getElementById( 'myTextarea' ),
    selStart = myTextarea.selectionStart,
    selEnd = myTextarea.selectionEnd,
    currentValue = myTextarea.value;

myTextarea.value = currentValue.substr( 0, selStart ) + ' ' + currentValue.substr( selEnd );
myTextarea.setSelectionRange( selStart + 1, selStart + 1 );


当然,如果您还需要“ keydown”事件来触发空格键,则必须单独触发它,这对于jQuery很容易:

var spaceEvt = new $.Event( 'keydown', { keyCode: 32 });
$( myTextarea ).trigger( spaceEvt );

关于javascript - 如何使用jQuery模拟用户按下键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19144003/

10-13 00:43