基于jQuery实现的设置文本区域的光标位置


Posted in jQuery onJune 15, 2018

如何使用jQuery在文本框中设置光标位置?我有一个带有内容的文本字段,并且我希望光标在焦点位于特定的偏移位置,该如何实现呢?

实现方法一:

这是一个jQuery解决方案:

$.fn.selectRange = function(start, end) {
 if(end === undefined) {
 end = start;
 }
 return this.each(function() {
 if('selectionStart' in this) {
  this.selectionStart = start;
  this.selectionEnd = end;
 } else if(this.setSelectionRange) {
  this.setSelectionRange(start, end);
 } else if(this.createTextRange) {
  var range = this.createTextRange();
  range.collapse(true);
  range.moveEnd('character', end);
  range.moveStart('character', start);
  range.select();
 }
 });
};

有了这个,你可以做

$('#elem').selectRange(3,5); // select a range of text
$('#elem').selectRange(3); // set cursor position

实现方法二:

$.fn.setCursorPosition = function(position){
 if(this.length == 0) return this;
 return $(this).setSelection(position, position);
}

$.fn.setSelection = function(selectionStart, selectionEnd) {
 if(this.length == 0) return this;
 input = this[0];

 if (input.createTextRange) {
 var range = input.createTextRange();
 range.collapse(true);
 range.moveEnd('character', selectionEnd);
 range.moveStart('character', selectionStart);
 range.select();
 } else if (input.setSelectionRange) {
 input.focus();
 input.setSelectionRange(selectionStart, selectionEnd);
 }

 return this;
}

$.fn.focusEnd = function(){
 this.setCursorPosition(this.val().length);
  return this;
}

现在,您可以通过调用以下任何元素将焦点移至任何元素的结尾

$(element).focusEnd();

方法三

function setSelectionRange(input, selectionStart, selectionEnd) {
 if (input.setSelectionRange) {
 input.focus();
 input.setSelectionRange(selectionStart, selectionEnd);
 }
 else if (input.createTextRange) {
 var range = input.createTextRange();
 range.collapse(true);
 range.moveEnd('character', selectionEnd);
 range.moveStart('character', selectionStart);
 range.select();
 }
}

function setCaretToPos (input, pos) {
 setSelectionRange(input, pos, pos);
}

调用办法:

setCaretToPos(document.getElementById("YOURINPUT"), 4);

jquery中文本域光标操作(选中、添加、删除、获取)

1、获取光标位置:$(elem).iGetFieldPos();
2、设置光标位置:$(elem).iSelectField(start);
3、选中指定位置内的字符:$(elem).iSelectField(start,end);
4、选中指定的字符:$(elem).iSelectStr(str);
5、在光标之后插入字符串:$(elem).iAdd(str);
6、删除光标前面(-n)或者后面(n)的n个字符:$(elem).iDel(n);

这篇文章就介绍到这了,希望大家以后多多支持三水点靠木。

jQuery 相关文章推荐
jQuery插件之validation插件
Mar 29 jQuery
jQuery实现可编辑表格并生成json结果(实例代码)
Jul 19 jQuery
jQuery:unbind方法的使用详解
Aug 14 jQuery
jQuery 中msgTips 顶部弹窗效果实现代码
Aug 14 jQuery
jquery插件开发之选项卡制作详解
Aug 30 jQuery
jquery 键盘事件的使用方法详解
Sep 13 jQuery
zTree jQuery 树插件的使用(实例讲解)
Sep 25 jQuery
jQuery中复合选择器简单用法示例
Mar 31 jQuery
jQuery使用each遍历循环的方法
Sep 19 jQuery
jQuery实现的隔行变色功能【案例】
Feb 18 jQuery
jquery实现二级导航下拉菜单效果实例
May 14 jQuery
jQuery实现王者荣耀手风琴效果
Jan 17 jQuery
jQuery实现列表的增加和删除功能
Jun 14 #jQuery
jQuery实现下拉菜单动态添加数据点击滑出收起其他功能
Jun 14 #jQuery
jQuery实现的页面详情展开收起功能示例
Jun 11 #jQuery
jQuery基于闭包实现的显示与隐藏div功能示例
Jun 09 #jQuery
jQuery实现表单动态加减、ajax表单提交功能
Jun 08 #jQuery
jQuery动态移除与增加onclick属性的方法详解
Jun 07 #jQuery
Angular5中调用第三方库及jQuery的添加的方法
Jun 07 #jQuery
You might like
php 全文搜索和替换的实现代码
2008/07/29 PHP
用PHP读取和编写XML DOM的实现代码
2011/02/03 PHP
php控制linux服务器常用功能 关机 重启 开新站点等
2012/09/05 PHP
php生成过去100年下拉列表的方法
2015/07/20 PHP
PHP结合Mysql数据库实现留言板功能
2016/03/04 PHP
ajax 缓存 问题 requestheader
2010/08/01 Javascript
javascript 模拟坦克大战游戏(html5版)附源码下载
2014/04/08 Javascript
javascript中call,apply,bind的用法对比分析
2015/02/12 Javascript
自定义刻度jQuery进度条及插件
2015/09/02 Javascript
基于jQuery实现文本框只能输入数字(小数、整数)
2016/01/14 Javascript
JS全局变量和局部变量最新解析
2016/06/24 Javascript
JavaScript中的splice方法用法详解
2016/07/20 Javascript
js判断checkbox是否选中个数的方法(超简单)
2016/08/19 Javascript
vue省市区三联动下拉选择组件的实现
2017/04/28 Javascript
ExtJs的Ext.Ajax.request实现waitMsg等待提示效果
2017/06/14 Javascript
Vue.js实例方法之生命周期详解
2017/07/03 Javascript
使用vue.js在页面内组件监听scroll事件的方法
2018/09/11 Javascript
浅谈监听单选框radio改变事件(和layui中单选按钮改变事件)
2019/09/10 Javascript
Vuex实现简单购物车
2021/01/10 Vue.js
vue3.0封装轮播图组件的步骤
2021/03/04 Vue.js
[03:18]DOTA2放量测试专访820:希望玩家加入国服大家庭
2013/08/25 DOTA
Python基于scrapy采集数据时使用代理服务器的方法
2015/04/16 Python
Python实现控制台进度条功能
2016/01/04 Python
python opencv对图像进行旋转且不裁剪图片的实现方法
2019/07/09 Python
python安装gdal的两种方法
2019/10/29 Python
Python列表切片常用操作实例解析
2020/03/10 Python
django 读取图片到页面实例
2020/03/27 Python
详解python logging日志传输
2020/07/01 Python
澳大利亚现代波西米亚风格女装网站:Bohemian Traders
2018/04/16 全球购物
亚洲在线旅行门户网站:Expedia.com.hk(智游网)
2020/04/14 全球购物
四查四看整改措施
2014/09/19 职场文书
销售代理协议书
2014/09/30 职场文书
新娘婚礼致辞
2015/07/27 职场文书
《棉鞋里的阳光》教学反思
2016/02/20 职场文书
升职自荐书
2019/05/09 职场文书
Python如何识别银行卡卡号?
2021/06/10 Python