基于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卸载全部事件的思路详解
Apr 03 jQuery
jquery实现提示语淡入效果
May 05 jQuery
JQuery.dataTables表格插件添加跳转到指定页
Jun 09 jQuery
jQuery之动画ajax事件(实例讲解)
Jul 18 jQuery
jQuery图片缩放插件smartZoom使用实例详解
Aug 25 jQuery
jQuery实现碰到边缘反弹的动画效果
Feb 24 jQuery
jQuery添加新内容的四个常用方法分析【append,prepend,after,before】
Mar 19 jQuery
Easyui 去除jquery-easui tab页div自带滚动条的方法
May 10 jQuery
jQuery实现图片下载代码
Jul 18 jQuery
Jquery让form表单异步提交代码实现
Nov 14 jQuery
jquery实现商品sku多属性选择功能(商品详情页)
Dec 20 jQuery
jQuery实现异步上传一个或多个文件
Aug 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 检查扩展库或函数是否可用的代码
2010/04/06 PHP
php将session放入memcached的设置方法
2014/02/14 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
2018/06/16 PHP
PHP使Laravel为JSON REST API返回自定义错误的问题
2018/10/16 PHP
Javascript 键盘keyCode键码值表
2009/12/24 Javascript
Js表格万条数据瞬间加载实现代码
2014/02/20 Javascript
原生js实现百叶窗效果及原理介绍
2016/04/12 Javascript
js CSS3实现卡牌旋转切换效果
2017/07/04 Javascript
在vue组件中使用axios的方法
2018/03/16 Javascript
angular中子控制器向父控制器传值的实例
2018/10/08 Javascript
微信小程序 轮播图实现原理及优化详解
2019/09/29 Javascript
js中addEventListener()与removeEventListener()用法案例分析
2020/03/02 Javascript
Vue基于iview table展示图片实现点击放大
2020/08/05 Javascript
[03:01]2014DOTA2国际邀请赛 小组赛7月13日TOPPLAY
2014/07/14 DOTA
跟老齐学Python之玩转字符串(2)更新篇
2014/09/28 Python
Python部署web开发程序的几种方法
2017/05/05 Python
python正则实现计算器功能
2017/12/14 Python
python leetcode 字符串相乘实例详解
2018/09/03 Python
详解Python传入参数的几种方法
2019/05/16 Python
python用类实现文章敏感词的过滤方法示例
2019/10/27 Python
Django xadmin安装及使用详解
2020/10/26 Python
HTML5页面中尝试调起APP功能
2017/09/12 HTML / CSS
HTML5 Canvas实现360度全景图的示例代码
2018/01/29 HTML / CSS
具有防紫外线功能的高性能钓鱼服装:Hook&Tackle
2018/08/16 全球购物
意大利灯具购物网站:Lampade.it
2018/10/18 全球购物
瑞典的玛丽小姐:Miss Mary of Sweden
2019/02/13 全球购物
C语言笔试题回忆
2015/04/02 面试题
Python的两道面试题
2013/06/29 面试题
产品质量保证书
2014/04/29 职场文书
市场策划求职信
2014/08/07 职场文书
2015新年寄语(一句话)
2014/12/08 职场文书
保管员岗位职责
2015/02/14 职场文书
2015年中秋节演讲稿
2015/03/20 职场文书
CSS实现隐藏搜索框功能(动画正反向序列)
2021/07/21 HTML / CSS
Python可视化学习之matplotlib内置单颜色
2022/02/24 Python
mysql 体系结构和存储引擎介绍
2022/05/06 MySQL