基于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使用unlock.js插件实现滑动解锁
Apr 04 jQuery
jQuery Ajax自定义分页组件(jquery.loehpagerv1.0)实例详解
May 01 jQuery
jquery实现左右轮播图效果
Sep 28 jQuery
webpack写jquery插件的环境配置
Dec 21 jQuery
jQuery中的类名选择器(.class)用法简单示例
May 14 jQuery
jQuery实现合并表格单元格中相同行操作示例
Jan 28 jQuery
jQuery实现的隔行变色功能【案例】
Feb 18 jQuery
jQuery Ajax async=>false异步改为同步时,解决导致浏览器假死的问题
Jul 22 jQuery
jquery.pager.js实现分页效果
Jul 29 jQuery
viewer.js一个强大的基于jQuery的图像查看插件(支持旋转、缩放)
Apr 01 jQuery
JQuery使用数组遍历跳出each循环
Sep 01 jQuery
jQuery实现简单评论区功能
Oct 26 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 删除一个数组中的某个值.兼容多维数组!
2012/02/18 PHP
使用PHP导出Redis数据到另一个Redis中的代码
2014/03/12 PHP
php使用ftp实现文件上传与下载功能
2017/07/21 PHP
php 使用expat方式解析xml文件操作示例
2019/11/26 PHP
javascript js cookie的存储,获取和删除
2007/12/29 Javascript
改进版通过Json对象实现深复制的方法
2012/10/24 Javascript
jquery获取焦点和失去焦点事件代码
2013/04/21 Javascript
JS定时关闭窗口的实例
2013/05/22 Javascript
jQuery获取和设置表单元素的方法
2014/02/14 Javascript
纯js代码实现未知宽高的元素在指定元素中垂直水平居中显示
2015/09/12 Javascript
js实现n秒倒计时后才可以点击的效果
2015/12/20 Javascript
jQuery循环遍历子节点并获取值的方法
2016/04/14 Javascript
AngularJS全局scope与Isolate scope通信用法示例
2016/11/22 Javascript
jquery广告无缝轮播实例
2017/01/05 Javascript
React + webpack 环境配置的方法步骤
2017/09/07 Javascript
慕课网题目之js实现抽奖系统功能
2017/09/19 Javascript
vuejs实现标签选项卡动态更改css样式的方法
2018/05/31 Javascript
解决vue-quill-editor上传内容由于图片是base64的导致字符太长的问题
2018/08/20 Javascript
5分钟快速看懂ES6中的反射与代理
2019/12/19 Javascript
BootStrap前端框架使用方法详解
2020/02/26 Javascript
[42:04]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#3Secret VS OG第一局
2016/03/03 DOTA
[45:44]完美世界DOTA2联赛PWL S2 FTD vs PXG 第一场 11.27
2020/12/01 DOTA
Python标准库之随机数 (math包、random包)介绍
2014/11/25 Python
Python定义二叉树及4种遍历方法实例详解
2018/07/05 Python
Python编程中类与类的关系详解
2019/08/08 Python
Django数据库操作之save与update的使用
2020/04/01 Python
新闻编辑自荐信
2013/11/03 职场文书
药品质量检测应届生求职信
2013/11/14 职场文书
护士演讲稿范文
2014/01/05 职场文书
员工安全生产责任书
2014/07/22 职场文书
终止劳动合同证明书样本
2014/11/19 职场文书
2014年教研室工作总结
2014/12/06 职场文书
高中军训感想
2015/08/07 职场文书
go语言中json数据的读取和写出操作
2021/04/28 Golang
Django分页器的用法你都了解吗
2021/05/26 Python
K8s部署发布Golang应用程序的实现方法
2021/07/16 Golang