首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将光标移到输入的末尾

问将光标移到输入的末尾
EN

Stack Overflow用户
提问于 2016-03-24 10:45:35
回答 4查看 6.4K关注 0票数 3

我有一个输入和setSelectionRange方法的问题。问题是,我在末尾设置了光标位置:

代码语言:javascript
复制
input.setSelectionRange(input.value.length,input.value.length );

光标移动到末尾,但文本保持在相同的位置。它在Firefox中工作,但在Chrome中不起作用。

​

代码语言:javascript
复制
var input = document.querySelector("input");
input.onclick = function (){
  this.setSelectionRange(this.value.length,this.value.length )
}
代码语言:javascript
复制
<input id="beLowerCase" type="Text" value="______________________________232332" />

​

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-03-30 06:41:39

我找到了简单的解决方案https://jsfiddle.net/r3yohhc0/1/属性scrollLeft

代码语言:javascript
复制
input.scrollLeft = input.scrollWidth;
票数 7
EN

Stack Overflow用户

发布于 2016-03-24 10:53:07

这不是JS问题,而是CSS问题。

不要设置setSelectionRange,只需将下面的CSS添加到代码中即可。

代码语言:javascript
复制
<style>
input#beLowerCase {text-align:right;}
</style>

工作守则如下:

我添加了一个类而不是ID,因为将样式放到类中比为ID编写样式更好。

​

代码语言:javascript
复制
document.querySelector("input").onclick = function() {
  var val = this.value
  this.value = "";
  this.value = val;
  this.style.textAlign = "right";
  this.style.textIndent = "-1000px";
}
document.querySelector("input").onkeydown = function() {
  this.style.textAlign = "auto";
  this.style.textIndent = "0";
}
代码语言:javascript
复制
<input id="beLowerCase" class="align-right" type="Text" value="______________________________232332" />

​

希望这能解决你的问题。

更新

通过JS删除样式和添加样式

更新js小提琴链接- https://jsfiddle.net/hsbea61b/6/

票数 2
EN

Stack Overflow用户

发布于 2016-03-24 10:55:11

您是否尝试动态添加CSS?

代码语言:javascript
复制
text-align: right;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36198320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档