Archive for 七月, 2011

将光标置于某表单元素的最后

星期五, 七月 29th, 2011

在工作中难免要对textarea动态插入一些内容,插入完成后又想让光标定位于textarea的最后,各浏览器对这个的解释有些差异,下面整理了一个兼容浏览器的方法 toTextEnd ,此方法接受一个参数,该参数为要定位光标的目标元素【可编辑表单元素】。

其实理论很简单,在IE中采用createTextRange方法,非IE中采用setSelectionRange方法进行光标定位。

代码中的cn.ie是进行IE检测,使用代码的朋友可以换成自己的方法才会起作用,否则会报错。

看代码:

function toTextEnd(elem){// 将光标置于某表单元素的最后
 if(cn.ie){
  var range = elem.createTextRange();
  range.moveStart("character", elem.value.length);
  range.collapse(true);
  range.select();
 }else{// 非IE情况下将光标置于文本框最后
  elem.setSelectionRange(elem.value.length, elem.value.length);
  elem.focus();
 }
};