【vue】获取光标位置,点击按钮插入文本标签

获取光标位置,点击按钮插入文本标签


实现功能:文本框上方有一些标签按钮,点击标签按钮将对应的文本标签插入到文本框中,要求插入位置为鼠标点击位置。

vue部分

// An highlighted block
<el-form-item>
	  <el-input type="textarea"
		  v-model="addForm.content"
		  :rows="4"
		  @blur="handleInputBlur"
		  ref="inputArea"
	   ></el-input>
</el-form-item>
<el-form-item>
	  <el-button
		   v-for="item in dicts['lable']"
		   @click="labClick(item.lableName)"
	   >{{item.lableName}}</el-button>
 </el-form-item>

js部分

// An highlighted block
<script>
export default {
  data () {
    return {
	    cursorIndex:''
	    }
    },
	methods:{
		//获取光标位置
		  handleInputBlur (e) {
	      this.cursorIndex = e.srcElement.selectionStart
	    },
	    //点击标签按钮,处理文本框文本内容
	    labClick(lab){
	      let s1='',
	      let s2='',
	      if(this.addForm.content.length<this.cursorIndex){
	        this.addForm.content=this,addForm.content+lab;
	      }
	      else{
	        s1=this.addForm.content.toString();
	        s2=this,addForm.content.toString();
	        this.addForm.content=s1.toString(0,this.cursorIndex)+
	        '['+
	        lab+
	        ']'+
	        s2.substring(this.cursorIndex,this.addForm.content.length);
	      }
	      this.$refs.inputArea.forcus()
	    }
	}
}
</script>
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值