当前位置:   article > 正文

el-input @focus设置光标位置_el-input focus

el-input focus

关于el-input获取焦点失去焦点时光标位置可以使用@focus方法;

 随便写个el-input,设置ref、focus、blur属性和方法。

  1. <el-input
  2. ref="inputRef"
  3. v-model="testFocus"
  4. placeholder="请输入..."
  5. @focus="getCursor"
  6. @blur="inputBlur"
  7. >
  8. <template slot="prepend">前缀文字</template>
  9. <template slot="append">后缀文字</template>
  10. </el-input>

 获取焦点时设置光标范围(2, 4)

setSelectionRange()

HTMLInputElement.setSelectionRange 方法用于设定<input> 或 <textarea> 元素中当前选中文本的起始和结束位置。

属性含义
selectionStart起始位置
selectionEnd结束位置
selectionDirectionforward、backward、none,三种选择方向,默认为forward从前向后
  1. methods: {
  2. inputBlur() {
  3. // 失去焦点是输出光标所在位置
  4. const textCursorStart = this.$refs.inputRef.$el.children[0].selectionStart;
  5. const textCursorEnd = this.$refs.inputRef.$el.children[0].selectionEnd;
  6. console.log(textCursorStart, textCursorEnd)
  7. },
  8. getCursor(event) {
  9. console.log(event)
  10. // 把光标移动input默认值的最后
  11. // event.target.setSelectionRange(this.position.length, this.position.length)
  12. // 设置光标范围(起始位置,结束位置,)
  13. event.target.setSelectionRange(2, 4)
  14. }
  15. }

setSelectionRange设置的光标范围是(2, 4)是生效的,但鼠标如果点击了input其他位置会覆盖这个设置,例如点击最后的位置,会使(2, 4)变成了(2, 9)


当我从下一个input,按键盘shift+tab反选这个input的时候,就发现选中(2, 4)了

所以这种方法仅在鼠标不点击input的时候好用,如果大佬能解决这个问题,记得回复我一下,感谢! 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/114596
推荐阅读
相关标签
  

闽ICP备14008679号