vue-textarea光标位置插入指定元素
    		       		warning:
    		            这篇文章距离上次修改已过438天,其中的内容可能已经有所变动。
    		        
        		                
                在Vue中,可以通过refs和原生DOM事件来在textarea的光标位置插入指定元素。以下是一个简单的例子:
<template>
  <div>
    <textarea ref="myTextarea"></textarea>
    <button @click="insertAtCursor">插入元素</button>
  </div>
</template>
 
<script>
export default {
  methods: {
    insertAtCursor(myValue) {
      // 获取textarea DOM元素
      const textarea = this.$refs.myTextarea;
      
      // 获取光标位置
      let startPos = textarea.selectionStart;
      let endPos = textarea.selectionEnd;
      
      // 保存光标位置
      let scrollPos = textarea.scrollTop;
      
      // 获取textarea当前值
      let currentValue = (textarea.value).substring(0, startPos)
                         + myValue 
                         + (textarea.value).substring(endPos, textarea.value.length);
      
      // 重新设置textarea的值
      textarea.value = currentValue;
      
      // 恢复光标位置
      textarea.selectionStart = startPos + myValue.length;
      textarea.selectionEnd = startPos + myValue.length;
      textarea.focus();
      textarea.scrollTop = scrollPos;
    }
  }
}
</script>在这个例子中,insertAtCursor 方法会在当前光标位置插入传入的 myValue。这个方法通过保存和恢复textarea的选区来确保插入后光标的位置不会改变。
评论已关闭