我有一个文本框,当我进行焦点时,我希望光标转到文本框的末尾.
不断涌现的解决方案就是
this.value = this.value
我用一个简单的方法尝试了这个:
function InputClicked(element) { element.className = "inputfocused"; element.value = element.value; }
但奇怪的是这个,它似乎转到结束然后跳到文本框的开头.
解决方法
你必须集中元素并设置插入位置
这个JSFiddle向您展示它是如何工作的.在这个例子中,jQuery已被用于简化,但如果需要,可以完全省略它.无论如何,setSelectionRange函数是一个DOM函数.
通常它会这样做:
input.focus(); input.setSelectionRange(inputValueLength,inputValueLength);
可以使用DOM功能或使用库函数(如jQuery中)获取输入及其值长度.
我们需要输入值长度吗?
我没有在其他浏览器中测试过,但在Chrome中运行它可以设置比实际位置更大的位置,插入符号将位于最后.所以类似于:
input.setSelectionRange(1000,1000);
将按预期工作(假设您的文本短于1000个字符.:)
Note: This function isn’t supported in IE8 and older. All latest versions of most used browsers support it. For older versions of IE resort to text ranges.