TextBox,TextAREA如何通过客户端JavaScript获取/设置SelectStart,SelectLength等相关信息

woolgate 2004-11-10 10:06:06
focus()默认会选择全部,我想自己获取并且设定SelectStart,SelectLength,好像Input type=text和TextAREA都没有这两个属性,怎么搞?
...全文
178 11 打赏 收藏 举报
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
woolgate 2005-01-04
  • 打赏
  • 举报
回复
注:都不好用:(
ttyp 2004-11-11
  • 打赏
  • 举报
回复
function getCaret(textbox)
{
var rang = document.selection.createRange();
rang.setEndPoint("StartToStart",textbox.createTextRange());

return rang.text.length;
}

function setCaret(textbox,pos)
{
try
{
var r =textbox.createTextRange();
r.moveStart('character',pos);
r.collapse(true);
r.select();
}
catch(e)
{}
}

function selectLength(textbox,start,len)
{
try
{
var r =textbox.createTextRange();

r.moveEnd('character',len-(textbox.value.length-start));
r.moveStart('character',start);

r.select();
}
catch(e)
{//alert(e.description)}
}
ttyp 2004-11-11
  • 打赏
  • 举报
回复
//取当前光标位置
var textobj=document.selection.createRange();
textobj.setEndPoint("StartToStart",thetext.createTextRange());
ww=textobj.text.length+1

//设置选择
<div id=demo>光标定位.abcdefghijklmnopqrstuvwxyz</div>
<br>从正数<input id=b value=4 size=4> 到 倒数第<input id=s value=4 size=4>位 <input value="设置文本选择" type=button onclick=setSelect()>
<script>
function setSelect(){var range = document.body.createTextRange();
range.moveToElementText(demo)
range.moveEnd('character',-1*parseInt(document.all.s.value));
range.moveStart('character',-1+parseInt(document.all.b.value));
range.select();
}
</script>
woolgate 2004-11-11
  • 打赏
  • 举报
回复
to webdiyer:是啊,我就是要写一大段代码来记住光标的位置,所以要事先知道光标所处的位置
woolgate 2004-11-10
  • 打赏
  • 举报
回复
to visualsw:
怎么可以啊?
webdiyer 2004-11-10
  • 打赏
  • 举报
回复
可以,参看:http://www.sitepoint.com/article/life-autocomplete-textboxes/2
asuntea 2004-11-10
  • 打赏
  • 举报
回复
up
笑对最好 2004-11-10
  • 打赏
  • 举报
回复
可以的^_^!
kenMoxi 2004-11-10
  • 打赏
  • 举报
回复
没有试过~
帮你UP
webdiyer 2004-11-10
  • 打赏
  • 举报
回复
这个本来就是这样吧,文本框失去焦点后就无法记住刚才鼠标的位置了,除非你再写一大段脚本来让它记住鼠标指针的位置。
woolgate 2004-11-10
  • 打赏
  • 举报
回复
webdiyer,
现在可以设置了,不果IE还是没法获取SelectStart,SelectLength信息
主要是onblur再次focus后光标会跑到第一个字符,而不是刚才编辑的位置,我想修改修改
发帖
JavaScript

8.7w+

社区成员

Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
帖子事件
创建了帖子
2004-11-10 10:06
社区公告
暂无公告