您的位置:首页 > Web前端 > JQuery

JQuery 聚焦控件后将光标定位在文本末尾显示

2014-12-25 13:38 851 查看
今天遇到了一个Ie下文本框聚焦时,光标不能自动定位到文本末尾的问题,在此小记下解决方法:

/*

* 公用方法

* utilityHandle.setFocus() 设置文本焦点定位方 (参数 objFocusEven:将设置聚焦的控件对象;values:焦点定位位置)

* */

var utilityHandle = {

setFocus:function(objFocusEven,values){

objFocusEven.focus();
// 默认使用focus方法聚焦

/* -------------- 2012.09.18 代码更新(增加对FF,Opera,Chorme现代浏览器的支持)--------*/

var objEven = objFocusEven[0]; // 将Jquery对象转换为Dom对象

if(window.getSelection){

// 现代浏览器

objEven.selectionStart =objEven.selectionEnd =
values;

}else if(document.selection){

// Ie浏览器

/* if ($.browser.msie) { //--- 此段注释代码,于2012.09.18日修改时去除---*/

var txt = objEven.createTextRange();
// 将传入的控件对象转换为Dom对象,并创建一个TextRange对象

txt.moveStart('character', values);
// 设置光标显示的位置

txt.collapse(true);

txt.select();

}

}};

// 事件调用

$("#btnView").click(function() {
var setFocusText = $("#txtFocus");
utilityHandle.setFocus(setFocusText,setFocusText.val().length);
});

附:
另外从网络中搜到了一些关于Javascript中createTextRange方法的具体使用示例:
"云上的日子": http://www.9ba.cn/post/356.html
“源码网”:http://info.codepub.com/2007/04/info-13353.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: