Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否可以在onkeyup和onpaste之间仅检测一个事件?_Javascript_Vue.js_Dom Events - Fatal编程技术网

Javascript 是否可以在onkeyup和onpaste之间仅检测一个事件?

Javascript 是否可以在onkeyup和onpaste之间仅检测一个事件?,javascript,vue.js,dom-events,Javascript,Vue.js,Dom Events,有一个元素。我添加了一个处理程序,它是Vue指令,用于侦听keyup并粘贴事件,如@keyup和@paste。 粘贴内容时,我只需要onPaste事件检测。但他们两人都被发现了。是否可以仅检测粘贴事件?那怎么做呢 让我们先确定一些基本原则,以便我们可以继续回答您的问题: 建立HTML本机事件基础知识 onpaste事件通常由用户通过以下两种方式之一触发: 用户按下的CTRL+V按钮(keydown+keydupHTML事件将针对每个按下的按钮触发 单击鼠标右键打开浏览器关联菜单并选择该选项

有一个
元素。我添加了一个处理程序,它是Vue指令,用于侦听keyup并粘贴事件,如
@keyup和@paste
。 粘贴内容时,我只需要
onPaste
事件检测。但他们两人都被发现了。是否可以仅检测粘贴事件?那怎么做呢



让我们先确定一些基本原则,以便我们可以继续回答您的问题:

建立HTML本机事件基础知识

onpaste
事件通常由用户通过以下两种方式之一触发:

  • 用户按下的
    CTRL+V
    按钮(
    keydown
    +
    keydup
    HTML事件将针对每个按下的按钮触发
  • 单击鼠标右键打开浏览器关联菜单并选择该选项 从输入中粘贴(
    contextmenu
    HTML事件被触发)
  • Vue.js

    Vue.js内置了事件侦听器,您可以侦听任何本机HTML事件。 如果您想只听
    onpaste
    HTML事件,只需像上面那样用
    @paste
    只听这个事件

    动机不明

    尝试修改浏览器的本机行为,即
    粘贴
    事件不会由
    键下
    /
    键上
    /
    上下文菜单
    事件组成,只要您尝试使用浏览器的本机HTML API,这是不可能的。如果您选择构建自己的自定义逻辑来粘贴并防止损坏这取决于你,但老实说,我真的不明白你做这种事情的动机是什么,因为浏览器的原生HTML事件正是它们需要做的


    我认为你需要问自己的主要问题是你想要完成什么?你目前试图解决的预期行为或挑战是什么。通过澄清这一点,你可能会问另一个问题,并得到一个更准确的答案,这有助于你目前的工作。祝你好运。

    你能提供一个简单的答案吗更多上下文?为什么需要区分
    keyup
    paste
    而不是使用
    input
    事件?@skille哦,我没有考虑
    input
    。我会搜索它。谢谢。@skille input元素中有旧值。我想添加新值。我能知道一个新值吗使用
    input
    event进行asted?如果您的问题是“用户粘贴某些内容后如何修改输入文本?”这是另一个问题,请搜索答案,我相信您会找到。如果不发布此问题,我相信您会很快得到回答。
    new Vue({
      el:'#app',
      methods: {
        onPaste: function () {
            console.log('paste');
        },
        keyup: function () {
            console.log('keyup');
        },
      }
    });