当前位置: 首页 > news >正文

vue+antd实践:在输入框光标处插入内容

今天来看一个很简单的需求。

需求描述:在输入框光标处,插入指定的内容。

效果如下:
请添加图片描述
实现思路:刚开始还在想怎么获取光标的位置,但是发现所做的项目是基于vue3+antd组件,那么不简单了嘛,只要调用textarea组件的blur事件,就能获取到光标最后出现的位置!

示例代码:

<template>插入选项:<a-tagv-for="item in insertList":key="item"color="green"@click="handleTagClick(item)">{{ item }}</a-tag><a-textareav-model:value="inputValue":autoSize="{ minRows: 4 }"@blur="handleBlur"style="margin-top: 5px;"></a-textarea>
</template><script lang="ts" setup>
import { ref } from "vue";const inputValue = ref(); // 输入的内容
const cursorPos = ref(); // 光标的位置
const insertList = ["内容1", "tag", "标签2", "test", 'XXXX'];const handleBlur = (e: any) => {cursorPos.value = e.srcElement.selectionStart;
};const handleTagClick = (tag: string) => {if (inputValue.value === undefined) { // 输入内容为空,直接插入inputValue.value = tag;} else {const start = inputValue.value.substring(0, cursorPos.value || 0),end = inputValue.value.substring(cursorPos.value || 0);inputValue.value = `${start}${tag}${end}`;}
};
</script>

存在的问题:多次点击插入选项时,都只会往光标最后一次出现的位置,插入内容,算不算问题,这个就看具体需求啦~

相关文章:

  • P9 【力扣+知识点】【算法】【二分查找】C++版
  • Cocos入门2:软件安装
  • Spring MVC 工作流程源码分析
  • Python爬虫之简单学习BeautifulSoup库,学习获取的对象常用方法,实战豆瓣Top250
  • 新能源汽车推行精益生产:绿色动力下的效率革命
  • 使用Lua基本实现分布式锁并自动续期
  • 代码随想录35期Day54-JavaScript
  • 通过LabVIEW提升生产设备自动化水平
  • centos7.8安装Mysql8.4
  • QT实现动态翻译切换
  • linux的磁盘分区与管理
  • 全网唯一:触摸精灵iOS版纯离线本地文字识别插件
  • mac地址一样,ip不同,能ping通么?
  • 数据结构(C):从初识堆到堆排序的实现
  • Spark介绍及RDD操作
  • 自己简单写的 事件订阅机制
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • Apache Pulsar 2.1 重磅发布
  • ES6语法详解(一)
  • EventListener原理
  • JAVA 学习IO流
  • js
  • Mocha测试初探
  • Mysql数据库的条件查询语句
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • node和express搭建代理服务器(源码)
  • PHP 7 修改了什么呢 -- 2
  • PHP 的 SAPI 是个什么东西
  • React as a UI Runtime(五、列表)
  • Web设计流程优化:网页效果图设计新思路
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 前端性能优化--懒加载和预加载
  • 使用 Xcode 的 Target 区分开发和生产环境
  • 它承受着该等级不该有的简单, leetcode 564 寻找最近的回文数
  • 通过npm或yarn自动生成vue组件
  • 责任链模式的两种实现
  • MyCAT水平分库
  • postgresql行列转换函数
  • 小白应该如何快速入门阿里云服务器,新手使用ECS的方法 ...
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • # linux从入门到精通(三)
  • #Datawhale AI夏令营第4期#AIGC方向 文生图 Task2
  • #职场发展#其他
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (苍穹外卖)day03菜品管理
  • (第30天)二叉树阶段总结
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (力扣)循环队列的实现与详解(C语言)
  • (力扣题库)跳跃游戏II(c++)
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • (译)2019年前端性能优化清单 — 下篇