jQuery 文本区域自动增长,直到行尾/输入才增长

jQuery textarea autogrow, do not grow until end of line/enter

本文关键字:输入 区域 文本 jQuery      更新时间:2023-09-26

在自动扩展文本区域上有很多线程。仍然没有找到一个我称之为"完美"的东西。我需要的一件事似乎无法解决,一旦用户开始输入,它们就会开始增长。我一直试图自己解决这个问题,但没有运气。我不希望文本区域在到达行尾或按回车键之前扩展。

http://jsfiddle.net/mstefanko/Jrpqg/65/

谢谢!

更新的答案:

对于我的情况,我不仅希望文本区域仅在点击下一行/输入时才扩展。而且在没有文本的情况下也要缩小。一个快速的解决方案,除了提供的答案之外,我还投入了一个如果文本区域为空,也运行 css 高度行。擦除时不会缩小,但至少在擦除所有文本后会重置高度。

        if ($.trim($(this).val()) == "") {
            $(this).css('height', Math.max(shadow.height() + 20, minHeight));
        }
        if(this.scrollHeight  > $this.height()) {
            $(this).css('height', Math.max(shadow.height() + 20, minHeight));
        }

添加以下 if 语句:

if(this.scrollHeight  > $this.height()) {
    $(this).css('height', Math.max(shadow.height() + 20, minHeight));
} else if($this.height() < shadow.height() + 20) {
    $(this).css('height', Math.max(shadow.height() + 20, minHeight));
}

可能有效,或者可能需要更多按摩才能使其按照评论中的要求减小尺寸。