使用JavaScript将光标置于文本输入元素中的文本末尾

什么是最好的方法(我认为最简单的方法)将光标放置在输入文本元素的文本末尾,通过JavaScript - 焦点已设置为元素之后?


我在IE中遇到了同样的问题(在通过RJS /原型设置焦点之后)。 当字段已有值时,Firefox已经离开游标。 IE强制光标移动到文本的开头。

我到达的解决方案如下:

<input id="search" type="text" value="mycurrtext" size="30" 
       onfocus="this.value = this.value;" name="search"/>

这适用于IE7和FF3


有一个简单的方法可以在大多数浏览器中使用它。

this.selectionStart = this.selectionEnd = this.value.length;

然而,由于少数浏览器的怪癖,更具包容性的答案看起来更像这样

setTimeout(function(){ that.selectionStart = that.selectionEnd = 10000; }, 0);

使用jQuery (设置侦听器,但这不是必需的)

$('#el').focus(function(){
  var that = this;
  setTimeout(function(){ that.selectionStart = that.selectionEnd = 10000; }, 0);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id='el' type='text' value='put cursor at end'>

试试这个,它对我有用:

//input is the input element

input.focus(); //sets focus to element
var val = this.input.value; //store the value of the element
this.input.value = ''; //clear the value of the element
this.input.value = val; //set that value back.  

为了将光标移动到最后,输入必须首先具有焦点,然后当该值改变时它将结束。 如果您将.value设置为相同,则它不会在Chrome中更改。

链接地址: http://www.djcxy.com/p/68447.html

上一篇: Use JavaScript to place cursor at end of text in text input element

下一篇: "Scroll" to the very right of a long text input