input粘贴事件,@paste操作输入框复制粘贴事件

本文介绍了如何在Vue组件中使用`handlePaste`事件处理用户在输入框中粘贴操作时,获取选中的文本范围,移除选中部分,保持光标位置,并确保与其他输入交互功能的兼容性。
摘要由CSDN通过智能技术生成

输入框的@paste事件操作粘贴复制,选中的内容

例如图上这样,获取我们鼠标选中的内容,输入框

<template>
  <div>
    <input type="text" v-model="inputText" @paste="handlePaste" />
  </div>
</template>

<script>
export default {
  data() {
    return {
      inputText: ""
    };
  },
  methods: {
    handlePaste(event) {
      // 获取输入框的选中文本范围
      const selectionStart = event.target.selectionStart;
      const selectionEnd = event.target.selectionEnd;

      // 判断文本是否被选中
      if (selectionStart !== selectionEnd) {
        // 去除选中的内容
        this.inputText = this.inputText.slice(0, selectionStart) + this.inputText.slice(selectionEnd);
        
        // 将光标移动到选中文本的起始位置
        event.target.setSelectionRange(selectionStart, selectionStart);

        console.log("Text is selected. Removed selected text.");
      } else {
        console.log("Text is not selected. Perform paste operation.");
      }
    }
  }
};
</script>

根据handlePaste事件来获取我们选中的开始下标和结束下标,再通过slice来更改我们输入框中的内容,小编使用这个的起因是因为之前做的input的输入框和文本框交互,对数据操作有个粘贴功能互斥了,粘贴的时候选中再粘贴会直接加在后面,所以需要把选中的截取再进行数据操作。

感兴趣的可以看我之前的文章!实现输入框input与文本框textarea的联动输入,批量查询数据vue+ts_vue文本框联动-CSDN博客

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值