美文网首页
input获取焦点时光标移到文字末尾

input获取焦点时光标移到文字末尾

作者: 洋洋_13dc | 来源:发表于2019-06-12 14:15 被阅读0次

    我的页面需求如下

    原本input是不展示的,只有一个搜索icon,点击搜索之后,input弹出,可输入文字进行搜索,但是每次点开的时候,在移动端,光标总是在文字的第一个位置,体验很不好

    后来在网上找到一个方法,用selectionStart方法,但是这个方法在pc端是有效果的,到了移动端就不行了,依然做个笔记,万一以后用的到呢

    var len = this.searchText.length

          if (document.selection) {

            var sel = this.$refs.searchInput.createTextRange()

            sel.moveStart('character', len) // 设置开头的位置

            sel.collapse()

            sel.select()

          } else if (typeof (this.$refs.searchInput.selectionStart) === 'number' && typeof (this.$refs.searchInput.selectionEnd) === 'number') {

            this.$refs.searchInput.selectionStart = this.$refs.searchInput.selectionEnd = len

            this.testText = this.$refs.searchInput.selectionStart + ',' + this.$refs.searchInput.selectionEnd

          }

          // this.$refs.searchInput.moveStart('word', this.searchText.length)

    后来找到了一个比较曲线的方法

    var tempSearchText = this.searchText

    this.searchText = ''

    setTimeout(function() {

        this.searchText = tempSearchText

    }.bind(this), 100)

    就是先把搜索框清空,等待100毫秒后再把原来的值赋上,亲测有效

    相关文章

      网友评论

          本文标题:input获取焦点时光标移到文字末尾

          本文链接:https://www.haomeiwen.com/subject/krqlfctx.html