代码之家  ›  专栏  ›  技术社区  ›  Martin AJ

如何关注文本区域结束值?

  •  1
  • Martin AJ  · 技术社区  · 8 年前

    这是我的代码:

    $('input').on('click', function(){
      $('textarea').focus();
    })
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <textarea>this is a test</textarea> <br />
    <input type="button" value="focus" />

    如何关注文本区域结束值?


    如您所见,当前当您单击按钮时,您将专注于文本区域,但在其值的开头。我只想把注意力集中在文本区域值的末尾。

    3 回复  |  直到 8 年前
        1
  •  2
  •   Bim Tertulies    8 年前

    你可以用 设置选择范围(开始,结束) ,参数是它正在设置的选择的起点和终点。如果将两者都设置为值字符串的最后一个索引,则光标将位于末尾。

    $('input').on('click', function(){
      let l=$("textarea").val().length
    
      $('textarea').focus()
      $('textarea')[0].setSelectionRange(l,l);
    })
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <textarea>this is a test</textarea> <br />
    <input type="button" value="focus" />
        2
  •  1
  •   Mamun    8 年前

    您可以尝试以下方法:

    $('input').on('click', function(){
      var preVal = $('#txtArea').val();
      $('#txtArea').val('');
      $('#txtArea').focus().val(preVal);
    })
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <textarea id="txtArea">this is a test</textarea> <br />
    <input type="button" value="focus" />
        3
  •  0
  •   yotke    8 年前

    一种方法是:

    1. 捕获上一个文本。
    2. 集中。
    3. 追加 ' ' 到上一个值。

    $('input').on('click', function(){
      var text = $('textarea').val();
      $('textarea').focus();
      $('textarea').val(text + ' ');
    })
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <textarea>this is a test</textarea> <br />
    <input type="button" value="focus" />