为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

富国沪深 2022-10-13 16:57:42
有没有办法将键盘事件重播到文本字段并让接收输入字段将该字符添加到其文本中?因为我不能让它工作。假设我按下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">
查看完整描述

1 回答

?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

感觉你让这件事变得比实际困难得多。只需在级别处理时将 的值设置input为。不知道为什么需要避免这样做,也许你可以解释一下。event.keybody


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

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


function eKeyUp(e){

  $('#mancineni').val(event.key);

}


function eKeyUpINPUT(e){

    e.stopPropagation();

}

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

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


查看完整回答
反对 回复 2022-10-13
  • 1 回答
  • 0 关注
  • 71 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信