将全局键盘事件传递到文本字段

有没有办法将键盘事件重播到文本字段并让接收输入字段将该字符添加到其文本中?因为我不能让它工作。


假设我按下a键盘,body 上的全局处理程序会捕获它。现在我想将它重播到给定的文本字段。因此,如果用户按下a键盘,它将仅基于事件显示在文本字段内。输入时弹出事件,但没有输入字符。这可能吗?我想避免使用.val();操作输入文本


例子:


$('body').on('keyup', eKeyUp);

$('#mancineni').on('keyup', eKeyUpINPUT);


function eKeyUp(e)

{

 

  $e = $.Event('keyup');

  $e.which = e.which;

  $e.charCode = e.charCode;

  $e.keyCode = e.keyCode;

  $e.shiftKey = e.shiftKey;

  $e.key = e.key;


  $('#mancineni').trigger($e);

    //$('#mancineni').focus();

}



function eKeyUpINPUT(e)

{

    console.log('g', e)

    e.stopPropagation();

}

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<input type="text" id="mancineni">


富国沪深
浏览 55回答 1
1回答

小怪兽爱吃肉

感觉你让这件事变得比实际困难得多。只需在级别处理时将 的值设置input为。不知道为什么需要避免这样做,也许你可以解释一下。event.keybody$('body').on('keyup', eKeyUp);$('#mancineni').on('keyup', eKeyUpINPUT);function eKeyUp(e){&nbsp; $('#mancineni').val(event.key);}function eKeyUpINPUT(e){&nbsp; &nbsp; e.stopPropagation();}<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script><input type="text" id="mancineni">
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript