【问题标题】:Cursor location in text-input fields文本输入字段中的光标位置
【发布时间】:2010-12-20 10:54:30
【问题描述】:

有很多关于如何将光标准确放置在文本区域中的信息。似乎都不适用于<input type="text"> 字段。

基本上,当页面加载时,我有一个包含文本的输入字段,并且它是聚焦的。问题是光标位于预写文本的末尾。我需要它在一开始。或者,隐藏光标也可以。实际上更好,但我不知道这是否可能。

理想情况下,这将在 jQuery 中完成,但常规 JS 也可以。

谢谢!
马拉

【问题讨论】:

    标签: javascript jquery text input


    【解决方案1】:

    这可以使用选择属性来完成:

    $('#my-element-id').attr({
        selectionStart : 0,
        selectionEnd   : 0
    });
    

    【讨论】:

      【解决方案2】:

      不确定 jQuery 对 Jordan 的回答做了什么,但这个可能是跨浏览器的:

      function setSelectionRange(inputEl, selStart, selEnd) { 
          if (inputEl.setSelectionRange) { 
              inputEl.focus(); 
              inputEl.setSelectionRange(selStart, selEnd); 
          } else if (inputEl.createTextRange) { 
              var range = inputEl.createTextRange(); 
              range.collapse(true); 
              range.moveEnd('character', selEnd); 
              range.moveStart('character', selStart); 
              range.select(); 
          } 
      }
      

      如果你将它与 jQuery 耦合,请像这样使用它:

      $(document).ready(function() {
          $('input[type="text"]').each(function() {
              setSelectionRange(this, 0, 0);
          });
      });
      

      顺便说一句,这段代码完全未经测试。

      编辑:在我看到您正在寻找输入元素后更新了代码...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-02-23
        • 2015-11-20
        • 1970-01-01
        相关资源
        最近更新 更多