如何在自动上设置文本区域高度

how to set textarea height on auto

var a = 'lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum ';
$('#btn').click(function(){
  $('#tx').val(a);
});
#tx{
  display:block;
  width:100%;
  background:gold;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id='tx'>lorem</textarea>
<br>
<button id='btn'>CLICK</button>

所以我需要在文本区域内查看全部内容,没有隐藏区域,就像在 div 中一样。

有什么帮助吗?

您需要将文本区域的高度设置为滚动的高度。所以使用 scrollHeight 属性 来获取它。

$('#btn').click(function(){
  $('#tx').val(a).height($("#tx")[0].scrollHeight)
});

var a = 'lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum ';
$('#btn').click(function(){
  $('#tx').val(a+a+a).height($("#tx")[0].scrollHeight)
});
#tx{
  display:block;
  width:100%;
  background:gold;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id='tx'>lorem</textarea>
<br>
<button id='btn'>CLICK</button>