[图解]在输入框和文本框中获取和设置光标位置,以及选中文本和获取选中文本值的方法 --- 详解,兼容所有浏览器。

王朝学院·作者佚名  2016-05-22  
宽屏版  字体: 小 | 中 | 大 | 超大  

[图解]在输入框和文本框中获取和设置光标位置,以及选中文本和获取选中文本值的方法 --- 详解,兼容所有浏览器。写在前面

最近在segmentfault上看到它的日期输入控件,感觉挺有意思。好吧,动手写一个,加到自己的代码库里吧。

然后问题来了,在上面图片中,我们很明显的看得出这里涉及光标位置的控制。比如说当我输入1993的3之后,光标必须要得插入到-中划线的下个输入点。

在网上找了找获取和设置光标位置的方法,发现是资料是相当的破碎,并没有一个详细的介绍。 所以我来一个详细的。 好了,不要啰嗦。

基本的认识

文本选中区域

光标 页面中闪烁的光标其实就是特殊的宽度为0的选区。 简单理解就是选区的左右边界交叉形成了光标。 有了这个概念下面的内容就很好理解了。

非IE浏览器下的实现

这里需要用到input元素的两个属性。

selectionStart、selectionEnd 选区开始位置,选区结束位置。

二者代表了选中区域的左右边界。

两个值默认都是0,所以当我们使用input.focus()方法时,默认光标在文本的开头。(注意这里并不是说每次focus调用光标都出现在开头。是因为selectionStart的和selectionEnd的值随着文本输入而改变,因而光标的位置随之改变。)

文本选中

我们设置

1 input.selectionStart = 0; //选中区域左边界2 input.selectionEnd = input.value.length; //选中区域右边界

上面的代码可以选中输入框的全部内容。 等同于input.select();

input.selectionStart = 1; //选中区域左边界input.selectionEnd = 4; //选中区域右边界PR

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有