基于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手风琴的简单制作
May 12 jQuery
简单谈谈require模块化jquery和angular的问题
Jun 23 jQuery
jQuery validata插件实现方法
Jun 25 jQuery
jquery实现一个全局计时器(商城可用)
Jun 30 jQuery
jQuery图片缩放插件smartZoom使用实例详解
Aug 25 jQuery
关于jquery中attr()和prop()方法的区别
May 28 jQuery
jQuery实现鼠标移到某个对象时弹出显示层功能
Aug 23 jQuery
JQuery特殊效果和链式调用操作示例
May 13 jQuery
jQuery zTree树插件的使用教程
Aug 16 jQuery
jQuery操作动画完整实例分析
Jan 10 jQuery
jQuery实现的上拉刷新功能组件示例
May 01 jQuery
jQuery实现增删改查
Dec 22 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
虫族 Zerg 魔法科技
2020/03/14 星际争霸
php Mysql日期和时间函数集合
2007/11/16 PHP
PHP网站备份程序代码分享
2011/06/10 PHP
Php header()函数语法及使用代码
2013/11/04 PHP
PHP输出英文时间日期的安全方法(RFC 1123格式)
2014/06/13 PHP
yii2.0整合阿里云oss上传单个文件的示例
2017/09/19 PHP
javascript实现动态增加删除表格行(兼容IE/FF)
2007/04/02 Javascript
Javascript-Mozilla和IE中的一个函数直接量的问题分析
2007/08/12 Javascript
javascript 全角转换实现代码
2009/07/17 Javascript
jquery下json数组的操作实现代码
2010/08/09 Javascript
node.js中的http.response.setHeader方法使用说明
2014/12/14 Javascript
jQuery实现默认是闭合的FAQ展开效果菜单
2015/09/14 Javascript
javascript倒计时效果实现
2015/11/12 Javascript
JavaScript中Object.prototype.toString方法的原理
2016/02/24 Javascript
JavaScript数据结构之广义表的定义与表示方法详解
2017/04/12 Javascript
React Native 使用Fetch发送网络请求的示例代码
2017/12/02 Javascript
详解React Native 屏幕适配(炒鸡简单的方法)
2018/06/11 Javascript
js时间转换毫秒的实例代码
2019/08/21 Javascript
在Layui中实现开关按钮的效果实例
2019/09/29 Javascript
JS实现canvas简单小画板功能
2020/06/23 Javascript
利用一个简单的例子窥探CPython内核的运行机制
2015/03/30 Python
Python实现提取文章摘要的方法
2015/04/21 Python
Python中取整的几种方法小结
2017/01/06 Python
Python中%是什么意思?python中百分号如何使用?
2018/03/20 Python
python实现密码强度校验
2020/03/18 Python
浅谈python处理json和redis hash的坑
2020/07/16 Python
python实现粒子群算法
2020/10/15 Python
【HTML5】3D模型--百行代码实现旋转立体魔方实例
2016/12/16 HTML / CSS
网络艺术零售业的先驱者:artrepublic
2017/09/26 全球购物
一套SQL笔试题
2016/08/14 面试题
计算机毕业大学生推荐信
2013/12/01 职场文书
新郎婚宴答谢词
2014/01/19 职场文书
4s店活动策划方案
2014/08/25 职场文书
省委召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
通知范文怎么写
2015/04/16 职场文书
诚信考试主题班会
2015/08/17 职场文书