我已经看到了100的答案,但这不是我需要的解决方案,因为它是jQuery的,我需要vue.js的.

到目前为止,我能够使用ff检测到单字符印刷.代码:

export default {
  name: 'game',

  data () {
    return {
      allowInput: false,
      disabledKeys: ['ArrowLeft', 'Home', 'Control']
    }
  },

  methods: {
    keymonitor: function (event) {
      console.log(event.key)
      
      if (this.disabledKeys.indexOf(event.key) >= 0) {
        event.preventDefault()
        this.allowInput = false
        // alert('not allowed')
      } else {
        this.allowInput = true
      }
    },

    checkAnswer () {
      if (! this.allowInput) {
        alert('the key(s) you pressed is/are not allowed')
      }
    } /* END checkAnswer */
  } /* END methods */
} /* END export default */
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.2.2/vue.min.js"></script>

<input id="typeBox" ref="typeBox" autocomplete="off" placeholder="Type here..."
       @keydown="keymonitor" @keyup="checkAnswer()" />

上面的代码成功阻止文本框接受箭头左键主键、和控件按键.

The problem:

我试图找出如何检测Ctrl+V,因为我想阻止文本框中的粘贴操作.有人知道怎么做吗?提前谢谢.

推荐答案

要检测两个键,Vue提供modifier keys,例如要检测Alt+C,您只需执行以下操作:

<input @keyup.alt.67="YourFn">

同样,对于Ctrl+V,您可以执行以下操作:

<input @keyup.ctrl.76="YourFn">

正如我看到的hereCtrl+v的ASCII代码是22,因此您应该能够简单地执行以下操作:

<input @keyup.22="YourFn">

Vue.js相关问答推荐

Vue3:如何在功能组件中重用插槽vnode

vuejs:在确认提示之前更改 HTML

Vue.js 3 运行时挂载组件实例

vuex 未知动作类型:addTodo

如果单元格不可见,则以编程方式打开行的编辑模式. Ag 网格,Vue.js

两个div元素之间的vue2过渡

拖入 vue2-google-map 后如何获取标记位置?

Vue CLI - 编译后将配置文件保留为外部

v-for 内部的组件

未捕获的类型错误:无法读取未定义的属性initializeApp

Webpack 你可能需要一个合适的加载器来处理这个文件类型

如何使用 vuejs 从 SPA 访问 /storage -laravel- 中的图像

Vue 3 组合 API,如何在 setup() 函数中获取上下文父属性?

如何在 Vuex 中获取 Vue 路由参数?

Vue-i18n '无法读取 Proxy.Vue.$t 处未定义的属性 '_t'

将 SignalR 与 Vue.js 和 Vuex 集成

如何让 Vue 在 shadow dom 中工作

vuejs 配置:使用全局变量?

升级到 vue-cli 3 后,HTML 中的空格消失了

Vuetify v-data-table 固定标题不起作用