Javascript jQuery-自动扩展textarea不处理粘贴的输入

Javascript jQuery-自动扩展textarea不处理粘贴的输入,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我正在尝试根据输入的文本自动展开/收缩文本区域。textarea的指定高度为250px,可以在overfow:auto使用滚动条启动之前自动扩展到450px。在文本区域中键入文本时,它可以完美地工作,但在粘贴大量文本时则无法工作 请看这里的小提琴: 还有一个片段: //自动展开/收缩文本区域 $'mytextarea'。绑定'input Property更改粘贴',函数{ var oldHeight=parseInt$this.height; 如果该高度小于450{ $this.height0

我正在尝试根据输入的文本自动展开/收缩文本区域。textarea的指定高度为250px,可以在overfow:auto使用滚动条启动之前自动扩展到450px。在文本区域中键入文本时,它可以完美地工作,但在粘贴大量文本时则无法工作

请看这里的小提琴:

还有一个片段:

//自动展开/收缩文本区域 $'mytextarea'。绑定'input Property更改粘贴',函数{ var oldHeight=parseInt$this.height; 如果该高度小于450{ $this.height0.heightthis.scrollHeight; } }.改变; mytextarea{ 高度:250px; 宽度:450px; 最小高度:250px; 最小宽度:450px; 调整大小:无; 溢出:自动; } 这对我很有用:

$(document).on("input", "textarea", function()
{
   $(this).prop('style').cssText = 'height:auto;';
   $(this).prop('style').cssText = 'height:' + $(this).prop('scrollHeight') + 'px';
});
Css:

textarea
{
    resize:none;
    max-height:450px;
    min-height:250px;
}
灵感来自


jsiddle:

我无法在Chrome 61、Firefox 56或Safari 11中重现该问题。是的,您的猜测是正确的,在值实际更改之前粘贴激发。您可以在延迟函数中对textarea进行更改,或者使用input event而不是您所有的更改。请注意,仅此属性更改?很容易导致无限循环。为什么行中包含“height:auto;”必需的没有那条线也行。看来你是对的,没有那条线也行。我收回那句话,没有高度:自动;盒子膨胀,永不收缩。试试这把小提琴,想个主意。