在输入法为中文时,打出英文需要回车添加到textarea上,如何阻止在输入法唤起时回车 导致消息发送出去?

一、键盘事件

需要明确 keyCode=13 和 keyCode=229 的区别?

  1. keyCode 13 和 229 都代表键盘上的回车键,但二者之间存在一些区别。
  2. keyCode 13:这是表示回车键的标准键码值。通常情况下,当用户按下回车键时,会生成一个键盘事件,其keyCode 属性的值为 13。因此,通过检查 keyCode 是否为 13,可以判断用户按下了回车键。
  3. keyCode 229:这是在特定情况下的某些浏览器和操作系统中,表示输入法的键码值。当用户使用非拉丁字符或复杂输入法(如中文输入法)进行输入时,这些浏览器可能会将输入事件交给操作系统的输入法处理,并且无法直接获取到最终的键码。在这种情况下,keyCode 的值会被设置为 229,表示当前正在输入的字符由输入法处理。

因此,keyCode 13 是标准回车键的键码值,而 keyCode 229 可能表示当前正在输入法处理的字符。在处理键盘事件时,需要根据具体情况对这两个键码进行区分和处理。

二、实现代码

// 这里需要对 key down 做处理
onKeyDown={keyboardEvent => {
  const { key, keyCode } = keyboardEvent;
  // 很对 keyCode == 229 不做处理
  if (key === "Enter" && keyCode == 13) { 
    // ...
  }
}}
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值