今天遇到了一个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);
});