首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在html文本框中设置键盘插入符号位置

在html文本框中设置键盘插入符号位置
EN

Stack Overflow用户
提问于 2009-02-04 17:54:52
回答 7查看 352.9K关注 0票数 214

有人知道如何将文本框中的插入符号移动到特定位置吗?

例如,如果一个文本框(例如,输入元素,而不是文本区域)中有50个字符,而我想将插入符号放在字符20之前,我该如何操作呢?

这不同于这个问题:jQuery Set Cursor Position in Text Area,它需要jQuery。

EN

回答 7

Stack Overflow用户

发布于 2010-11-29 18:11:14

答案中的链接断开了,这个链接应该是有效的(所有学分都将转到blog.vishalon.net):

http://snipplr.com/view/5144/getset-cursor-in-html-textarea/

如果代码再次丢失,下面是两个主要函数:

function doGetCaretPosition(ctrl)
{
 var CaretPos = 0;

 if (ctrl.selectionStart || ctrl.selectionStart == 0)
 {// Standard.
  CaretPos = ctrl.selectionStart;
 }
 else if (document.selection)
 {// Legacy IE
  ctrl.focus ();
  var Sel = document.selection.createRange ();
  Sel.moveStart ('character', -ctrl.value.length);
  CaretPos = Sel.text.length;
 }

 return (CaretPos);
}


function setCaretPosition(ctrl,pos)
{
 if (ctrl.setSelectionRange)
 {
  ctrl.focus();
  ctrl.setSelectionRange(pos,pos);
 }
 else if (ctrl.createTextRange)
 {
  var range = ctrl.createTextRange();
  range.collapse(true);
  range.moveEnd('character', pos);
  range.moveStart('character', pos);
  range.select();
 }
}
票数 54
EN

Stack Overflow用户

发布于 2012-04-19 19:54:16

我稍微调整了kd7的答案,因为当selectionStart为0时,elem.selectionStart会计算为false。

function setCaretPosition(elem, caretPos) {
    var range;

    if (elem.createTextRange) {
        range = elem.createTextRange();
        range.move('character', caretPos);
        range.select();
    } else {
        elem.focus();
        if (elem.selectionStart !== undefined) {
            elem.setSelectionRange(caretPos, caretPos);
        }
    }
}
票数 21
EN

Stack Overflow用户

发布于 2019-08-29 20:13:25

我找到了一个简单的方法来解决这个问题,在IE和Chrome上进行了测试:

function setCaret(elemId, caret)
 {
   var elem = document.getElementById(elemId);
   elem.setSelectionRange(caret, caret);
 }

将文本框id和插入符号位置传递给此函数。

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/512528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档