【问题标题】:Howto Place cursor at beginning of textarea如何将光标放在文本区域的开头
【发布时间】:2010-11-23 02:56:31
【问题描述】:

我找到了一些关于如何将光标放在文本末尾的文本区域的资源,但我无法找到一种简单的方法让它出现在开头。

我正在用一些文本预先填充文本区域,只是想让用户更轻松。

【问题讨论】:

    标签: javascript prototype textarea


    【解决方案1】:

    将你的文本区域的引用传递给这个 JS 函数。

    function resetCursor(txtElement) { 
        if (txtElement.setSelectionRange) { 
            txtElement.focus(); 
            txtElement.setSelectionRange(0, 0); 
        } else if (txtElement.createTextRange) { 
            var range = txtElement.createTextRange();  
            range.moveStart('character', 0); 
            range.select(); 
        } 
    }
    

    【讨论】:

      【解决方案2】:

      根据您的需要,更简单的 Javascript 版本是:

      document.querySelector("textarea").focus(); //set the focus - cursor at end
      document.querySelector("textarea").setSelectionRange(0,0); // place cursor at start
      

      您也不能只是将它们串在一起,以摆脱双重 querySelector - 不知道为什么。

      【讨论】:

        【解决方案3】:

        jQuery 方式:

        $('textarea[name="mytextarea"]').focus().setSelectionRange(0,0);
        

        【讨论】:

        • 这行不通。应该是:$('textarea[name="mytextarea"]').focus().get(0).setSelectionRange(0,0); ... 添加的 get(0) 是为了暴露 DOM 元素,因为 setSelectionRange() 是一种 DOM 方法而不是 jQuery 方法。
        【解决方案4】:

        请在使用$(textareaSelector).val(val)后用于带有滚动的textarea

        $(textareaSelector)[0].setSelectionRange(0, 0);
        $(textareaSelector).focus();
        

        【讨论】:

          【解决方案5】:

          去掉标签之间的空格
          像这样:

          <textarea rows="5" cols="50" name="extra"></textarea>
          

          【讨论】:

            猜你喜欢
            • 2011-03-22
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-01-31
            • 1970-01-01
            • 2012-06-20
            • 1970-01-01
            相关资源
            最近更新 更多