【发布时间】:2020-12-10 13:46:18
【问题描述】:
我写了一个 html/php 页面来更新数据库内容。该页面有几个表单(我需要编辑的每个数据库行一个),每个表单都有几个 textarea 字段。
我想使用纯 JavaScript(无 jQuery)将每个文本区域的高度与其内容(从 db 检索)相匹配。
我找到了以下JS函数:
function autoResize() {
this.style.height = 'auto';
this.style.height = this.scrollHeight + 'px';
}
但是如何将它用于页面中的每个 textarea 字段?有没有更好的方法来实现目标?
谢谢!
更新
也许这是一个很好的解决方案:
var els = document.querySelectorAll('textarea');
Array.from(els).forEach((el) => {
var offset = el.offsetHeight - el.clientHeight;
el.style.height = 0;
el.style.height = el.scrollHeight + offset + 'px';
el.addEventListener('input', function() {
el.style.height = el.scrollHeight + offset + 'px';
});
});
能否以更好的方式完成?
【问题讨论】:
标签: javascript html forms textarea