TextBox中应用createRange和caretPos的问题。

deepestwhite 2004-10-29 01:18:16
我用下面一段代码实现了利用Button按钮在TextBox中将字符插入到光标停留处的功能:

function storeCaret (textEl) {
if (textEl.createTextRange)
textEl.caretPos = document.selection.createRange().duplicate();
}

function insertAtCaret (textEl, text) {
textEl.focus();
if (textEl.createTextRange && textEl.caretPos) {
var caretPos = textEl.caretPos;
var selectedString = caretPos.text
caretPos.text =caretPos.text.charAt(caretPos.text.length - 1) == ' ' ?text+ ' ' : text;
}
else {
textEl.value =textEl.value + text;
}

if(selectedString!="" ){
var rng=document.selection.createRange();
rng.collapse(false);
rng.move("character", 0);
rng.select();
}
}
现在遇到的问题是,当TextBox失去焦点后,再去按Button按钮,仍然能插入,但是插入的地方在前一次文本框中光标落的地方,插入字符后,光标落到了字符串的最前面。这样的话,感觉不是很好。
我想要的效果是:
当TextBox失去焦点后,再去按Button按钮,将字符追加到字符串最后,光标也相应的落到最后。

...全文
160 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
deepestwhite 2004-11-01
  • 打赏
  • 举报
回复
up!
vzxq 2004-11-01
  • 打赏
  • 举报
回复
UP
fengforever 2004-11-01
  • 打赏
  • 举报
回复
http://www.cnblogs.com/index/archive/2004/10/14/52314.aspx
deepestwhite 2004-10-29
  • 打赏
  • 举报
回复
button.attrbutes.add("onclick","alert(document.activeElement);")
是的,我试过了啊
xiaohutushen 2004-10-29
  • 打赏
  • 举报
回复
帮你顶
zhn0410 2004-10-29
  • 打赏
  • 举报
回复
占个位学习,并帮你顶一下。
rickjelly2004 2004-10-29
  • 打赏
  • 举报
回复
button.attrbutes.add("onclick","alert(document.activeElement);")
它是BUTTON不会吧
deepestwhite 2004-10-29
  • 打赏
  • 举报
回复
document.activeElement没有,
它取得的是button
deepestwhite 2004-10-29
  • 打赏
  • 举报
回复
ACTIVEELEM
是什么啊?
没有用过啊
rickjelly2004 2004-10-29
  • 打赏
  • 举报
回复
document.activeElement
rickjelly2004 2004-10-29
  • 打赏
  • 举报
回复
有点难,一会儿要插在原来的光标处,一会儿儿要插在最后,
不知道加一个判断行不行呀
就是你的的BUTTON的CLICK的时候,你先获得ACTIVEELEM看是不是你的textbox,是的就插在光标处,不是的话,就插在最后
deepestwhite 2004-10-29
  • 打赏
  • 举报
回复
up!

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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