vue 在光标处插入字符串

<el-button @click="insertNoteValue">插入</el-button>


 <textarea id="smsDetail" v-model="nodeForm.SmsDetails" placeholder="短信模板"></textarea>


//插入方法

async insertNoteValue(){

      var myValue = "{{呵呵}}"

      const myField = document.querySelector('#smsDetail');

      if (myField.selectionStart || myField.selectionStart === 0) {

        var startPos = myField.selectionStart //选区开始位置

        var endPos = myField.selectionEnd //选区结束位置

        this.nodeForm.SmsDetails = myField.value.substring(0, startPos) + myValue + myField.value.substring(endPos, myField.value.length)

        await this.$nextTick() //修改数据之后立即使用这个方法获取更新后的DOM。

        myField.focus()

        myField.setSelectionRange(endPos + myValue.length, endPos + myValue.length)

      } else {

        this.nodeForm.SmsDetails += myValue

      }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容