如何实现textarea光标定位

 我来答
长丁木水龙
2017-07-10 · TA获得超过1900个赞
知道小有建树答主
回答量:1214
采纳率:80%
帮助的人:192万
展开全部
   <span id="stat">数量:0, 合计:0</span>
   <span style="width:20px"></span>
   <span id="position"></span><br />
   <textarea ID="tbxWeightDetail" style="width:250px" width="250px" runat="server" TextMode="MultiLine" 
      onchange="getPosition(this);calcWeight(this, true);" 
       onkeyup="getPosition(this);calcWeight(this);" onclick="getPosition(this);" onblur="clearPosition(this);"
        ></textarea>
   
    <script>
      function calcWeight(input, c)
       {
          var a = [];
        input.value.replace(/\d+([\.]\d+){0,1}/g, function($0) { a.push($0); });
           var sum = eval(a.join("+")) || 0;
         document.getElementById("stat").innerHTML = "数量:" + a.length + ", 合计:" + sum.toFixed(2);
         if (c)
         {
               input.value = a.join("+");
         }
      }
   
      calcWeight(document.getElementById("tbxWeightDetail"));
 
      function getPosition(input)
      {
          var rng = event.srcElement.createTextRange();
          var length = 0;//设置初始位置
         input.focus();
         var scrollPosition = input.scrollTop;//获得滚动条的位置  
          var selectedRange = document.selection.createRange();//创建文档选择对象
         rng.collapse(true);
         rng.select();
          var j = document.selection.createRange();//为新的光标位置创建文档选择对象
         selectedRange.setEndPoint("StartToStart",j);//在以前的文档选择对象和新的对象之间创建对象
           var str = selectedRange.text;//获得对象的文本
          var re = new RegExp("[\\n]","g");
        str = str.replace(re,"");//过滤  
          length = str.length;//获得长度.也就是光标的位置  
           selectedRange.collapse(false);  
          selectedRange.select();//把光标恢复到以前的位置
          input.scrollTop = scrollPosition;//把滚动条恢复到以前的位置
  
          var a = [];
           str.replace(/\+/g, function($0) { a.push($0); });
           document.getElementById("position").innerHTML = "第" + (a.length + 1) + "个明细";
    }
  
      function clearPosition(input)
      {
          document.getElementById("position").innerHTML = "";
      }
 </script>
AiPPT
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图... 点击进入详情页
本回答由AiPPT提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式