如何得到光标在INPUT(text)中的位置?我想确定光标是否在输入框中的字符串的开始或结尾。

muiz 2004-11-29 04:55:37
如何得到光标在INPUT(text)中的位置?我想确定光标是否在输入框中的字符串的开始或结尾。
比如:
_________________________
| |
| ab|cdef |
-------------------------
上面“ab|cdef”中的“|”代表光标。我要知道光标是否在开始“a”的前面或是结为“f”的后面。
...全文
513 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
muiz 2004-11-30
  • 打赏
  • 举报
回复
顶一下啊
muiz 2004-11-30
  • 打赏
  • 举报
回复
zhaoxiaoyang(梅雪香),我在Mozilla中运行,提示错误:document没有selection这个属性。
是不是document.selection.createRange();这个是微软的扩展(JScript?)我现在不登陆其他网站,所以不可以查询,故这样问,不好意思
muiz 2004-11-30
  • 打赏
  • 举报
回复
function setSel(){
var f=document.f;
var t=f.ta;
if(t.setSelectionRange){
var start=parseInt(f.start.value);
var end =parseInt(f.end .value);
t.setSelectionRange(start,end);
t.focus();
f.t.value = t.value.substr(t.selectionStart,t.selectionEnd-t.selectionStart);
} else notSupported();
}
function setProp(id){
var f=document.f;
var t=f.ta;
if(id==0) t.selectionStart = parseInt(f.start.value);
if(id==1) t.selectionEnd = parseInt(f.end .value);
f.t.value = t.value.substr(t.selectionStart,t.selectionEnd-t.selectionStart);
t.focus();
}
function getProp(id){
var f=document.f;
var t=f.ta;
if(id==0) f.start.value = t.selectionStart;
if(id==1) f.end.value = t.selectionEnd;
if(id==2) f.txl.value = t.textLength;
f.t.value = t.value.substr(t.selectionStart,t.selectionEnd-t.selectionStart);
t.focus();
}
f:from
ta: textArea
用上面的方法解决,具体请看:Mozilla Dom Sample Project
http://cgi.din.or.jp/~hagi3/JavaScript/Mozilla/SampleList.cgi?fmt=sidebar

梅雪香 2004-11-29
  • 打赏
  • 举报
回复
function getPos(obj){
var ml=obj.value.length;
var pos=0;
var rng=document.selection.createRange();
rng.moveEnd("character",ml);
try{
pos=ml-rng.text.length
}catch(e){}
return pos;
}
muiz 2004-11-29
  • 打赏
  • 举报
回复
顶下
muiz 2004-11-29
  • 打赏
  • 举报
回复
要使用javascript,不能用JScript,因为要支持其他浏览器,比如mozilla
一下在IE中能运行:
// 得到一个文本框控件的当前光标位置
  function getPos(obj)// obj is the input element
  {
  obj.focus();
  var workRange=document.selection.createRange();
  obj.select();
  var allRange=document.selection.createRange();
  workRange.setEndPoint("StartToStart",allRange);
  var len=workRange.text.length;
  workRange.collapse(false);
  workRange.select();
  return len;
  }




  // 设置一个文本框控件的当前光标位置
  function setCursor(obj,num){
  range=obj.createTextRange();
  range.collapse(true);
  range.moveStart('character',num);
  range.select();
  }

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧