Textarea 调整大小 JS 脚本错误

Posted

技术标签:

【中文标题】Textarea 调整大小 JS 脚本错误【英文标题】:Textarea resize JS script bug 【发布时间】:2020-09-09 19:19:26 【问题描述】:

我正在尝试修复我为调整表单的<textarea> 大小而编写的 javascript 中的一个错误。

我希望它根据文本行数调整大小。理想情况下,应该遵循底线。

表格链接:LorenzoMengolini.com/contact

<script>
(function($)  
var span = $('<span>').css('display','inline-block')
.css('word-break','break-all').appendTo('body').css('visibility','hidden');
function initSpan(textarea)
  span.text(textarea.text())
      .width(textarea.width())      
      .css('font',textarea.css('font'));

$('textarea').on(
    input: function()
      var text = $(this).val();      
      span.text(text);      
      $(this).height(text ? span.height() : '1.1em');
    ,
    focus: function()
     initSpan($(this));
    ,
    keypress: function(e)
        if(e.which == 13) e.preventDefault();
    
);
)(jQuery);
</script>

【问题讨论】:

【参考方案1】:

这段代码不是比javascript函数更好吗?

&lt;textarea name="text" oninput='this.style.height = "";this.style.height = this.scrollHeight + "px"'&gt;&lt;/textarea&gt;

【讨论】:

感谢@djcaesar9114 的建议我已经在页面上实现了。你可以在这里看到结果lorenzomengolini.com/contact 唯一的问题是当文本被删除时,textarea 不会恢复到原始大小。有可能解决这个问题吗?非常感谢您的支持

以上是关于Textarea 调整大小 JS 脚本错误的主要内容,如果未能解决你的问题,请参考以下文章

真正从 <textarea> 中删除调整大小句柄

如何自动调整tinyMCE的大小?

使用 CSS 与使用 cols 和 rows 调整 textarea 的大小

我可以设置 textarea 的调整大小抓取器的样式吗?

调整textarea大小时,所有元素都向下移动:如何修复

<textarea> 调整字体大小问题 IE 10