如果直接给文本框设置focus(),那么对于不同的浏览器,光标聚焦的位置可能在最前面也可能在最后面。下面的代码是给jQuery扩展一个textFocus方法,用于使文本框聚焦在想要的位置:
/**
* 光标放在最后 $("#文本框ID").textFocus();
* 光标放在第二个字符后面 $("#文本框ID").textFocus(2);
*/
(function($){
$.fn.textFocus=function(v){
var range,len,v=v===undefined?0:parseInt(v);
this.each(function(){
if($.browser.msie){
range=this.createTextRange();
v===0?range.collapse(false):range.move("character",v);
range.select();
}else{
len=this.value.length;
v===0?this.setSelectionRange(len,len):this.setSelectionRange(v,v);
}
this.focus();
});
return this;
}
})(jQuery)