如何使用 Vuejs 在 Safari 中侦听表单上的粘贴事件

Posted

技术标签:

【中文标题】如何使用 Vuejs 在 Safari 中侦听表单上的粘贴事件【英文标题】:How to listen for a paste event on a form in Safari with Vuejs 【发布时间】:2020-12-15 18:29:49 【问题描述】:

我在 Vuejs 中有一个表单。在输入信用卡号时,我有这个: @change="updateNumber($event)"

在 Chrome 中,当我粘贴信用卡号或从我保存的卡中自动填充一个信用卡号时,这会被识别为“更改”。但是,在 Safari 中并非如此。不会发出更改事件。我想知道我需要监听哪个事件以及如何在我的 Vuejs 组件中设置自定义事件监听器。谢谢!

【问题讨论】:

input 事件捕获粘贴 对于那些也有这个问题的人,粘贴事件也不会发出。我只看到输入事件在 Safari 中起作用 【参考方案1】:

而不是监听@change,而是监听@input,这将在用户粘贴到输入时触发一个事件。

你的最终代码变成:

@input="updateNumber($event)"

Here is a working fiddle 我在 Chrome 和 Safari 中都测试过

【讨论】:

以上是关于如何使用 Vuejs 在 Safari 中侦听表单上的粘贴事件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Objective C 中使用 Safari 打开表单?

在 vuejs 中提交表单,我应该使用表单标签吗?

Vuejs - 如何使用单个表单添加和编辑

如何在 VueJS 文件中添加 Laravel CSRF 令牌? [复制]

VueJS:v-for 中的表单 - 如何获取正确的数据?

如何在 vuejs2 中执行“用户停止输入后提交表单”