vue3 在el-input的光标处插入文本

点击文本框下方的按钮,将相应的文本插入光标处的实现:

复制代码
<el-input type="textarea" rows="4" v-model="formula" @blur="handleBlur" clearable></el-input>
 <el-button-group class="short_btn">
            <el-button type="primary" plain @click="appendFormula('+')">+</el-button>
             <el-button type="primary" plain @click="appendFormula('-')">-</el-button>
              <el-button type="primary" plain @click="appendFormula('*')">*</el-button>
               <el-button type="primary" plain @click="appendFormula('/')">/</el-button>
                <el-button type="primary" plain @click="appendFormula('(')">(</el-button>
                 <el-button type="primary" plain @click="appendFormula(')')">)</el-button>
        </el-button-group>

const cursorPos = ref(); // 光标位置
const handleBlur = (e:any)=>{
  cursorPos.value = e.srcElement.selectionStart;
};

const appendFormula = (str: any ) => {
  if (!formula.value) {
    formula = str;
  } else {
    const start = formula.value.substring(0, cursorPos.value);
    const end =formula.value.substring(cursorPos.value);
    formula.value = `${start}${str}${end}`;
  }
};
相关推荐
流浪码农~几秒前
Element Plus DatePicker 动态设置每周起始日
前端·vue.js·elementui
如果超人不会飞6 分钟前
TinyVue NavMenu导航菜单组件使用指南
前端·vue.js
赵庆明老师12 分钟前
JS检查提交的文件是否合规
开发语言·前端·javascript
颂love26 分钟前
Vue的两大生态以及组件通信
前端·javascript·vue.js·typescript
Csvn41 分钟前
Vue3 迁移血泪史:v-model 的 .sync 陷阱,90% 升级项目都会踩
前端·vue.js
光影少年41 分钟前
js单线程,为什在node环境下的js可以处理高并发请求?
前端·javascript·掘金·金石计划
moMo1 小时前
# JavaScript 的“等等我”:聊聊同步与异步
javascript
Cobyte1 小时前
19.Vue Vapor 的实现原理原来这么简单
前端·javascript·vue.js
JackieDYH1 小时前
uniapp vue3 常用的生命周期和作用使用时机
javascript·vue.js·uni-app
hhb_6182 小时前
TypeScript泛型实战:企业级请求封装全解析
javascript·ubuntu·typescript