Google 键盘剪贴板不会触发粘贴事件

问题描述 投票:0回答:2

我正在使用多输入组件来捕获 MFA 代码。想象六个相同的框,当您输入时 - 它会移动到下一个框,并在完成后自动提交。

我们以独特的方式处理粘贴逻辑,从一开始就一次填写一个代码,效果非常好,可以让用户粘贴到任何输入字段中。

问题是,当使用谷歌键盘(GBoard - Pixl 手机原生)时 - 剪贴板功能似乎不会触发实际的粘贴,而是尝试触发某种 onChange 事件或一系列 onChange 事件。

例如,如果剪贴板中有 123456 并且按下剪贴板按钮,则更改处理程序将触发“1”而不是“123456”的 onPaste。

我想知道是否有人遇到过类似的问题以及您是如何解决的。我研究了 navigator.clipboard 路线 - 但这需要提示用户权限,并且我仍然需要唯一标识用户键盘,因为这会触发正常的复制粘贴(可以正常工作)

javascript events keyboard-events gboard
2个回答
1
投票

我的同事找到了一种解决方案,当

e.target.value.length
等于 codeLength(在本例中表示从 gBoard 进行粘贴)时,特定的 handleChange 行为等于 handlePaste 行为。希望这对可能遇到此问题的其他人有所帮助。


0
投票

我也有类似的问题。我更改了

type="number"
作为输入。从剪贴板粘贴时会触发正确的输入事件
event.value
,我在另一个函数中处理了它。

© www.soinside.com 2019 - 2024. All rights reserved.