基于jQuery实现的设置文本区域的光标位置
如何使用jQuery在文本框中设置光标位置?我有一个带有内容的文本字段,并且我希望光标在焦点位于特定的偏移位置,该如何实现呢?
实现方法一:
这是一个jQuery解决方案:
$.fn.selectRange=function(start,end){
if(end===undefined){
end=start;
}
returnthis.each(function(){
if('selectionStart'inthis){
this.selectionStart=start;
this.selectionEnd=end;
}elseif(this.setSelectionRange){
this.setSelectionRange(start,end);
}elseif(this.createTextRange){
varrange=this.createTextRange();
range.collapse(true);
range.moveEnd('character',end);
range.moveStart('character',start);
range.select();
}
});
};
有了这个,你可以做
$('#elem').selectRange(3,5);//selectarangeoftext
$('#elem').selectRange(3);//setcursorposition
实现方法二:
$.fn.setCursorPosition=function(position){
if(this.length==0)returnthis;
return$(this).setSelection(position,position);
}
$.fn.setSelection=function(selectionStart,selectionEnd){
if(this.length==0)returnthis;
input=this[0];
if(input.createTextRange){
varrange=input.createTextRange();
range.collapse(true);
range.moveEnd('character',selectionEnd);
range.moveStart('character',selectionStart);
range.select();
}elseif(input.setSelectionRange){
input.focus();
input.setSelectionRange(selectionStart,selectionEnd);
}
returnthis;
}
$.fn.focusEnd=function(){
this.setCursorPosition(this.val().length);
returnthis;
}
现在,您可以通过调用以下任何元素将焦点移至任何元素的结尾
$(element).focusEnd();
方法三
functionsetSelectionRange(input,selectionStart,selectionEnd){
if(input.setSelectionRange){
input.focus();
input.setSelectionRange(selectionStart,selectionEnd);
}
elseif(input.createTextRange){
varrange=input.createTextRange();
range.collapse(true);
range.moveEnd('character',selectionEnd);
range.moveStart('character',selectionStart);
range.select();
}
}
functionsetCaretToPos(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);
这篇文章就介绍到这了,希望大家以后多多支持毛票票。