搜索
javascript - js怎么获取textarea自动换行行数?
phpcn_u1582
phpcn_u1582 2017-05-16 13:44:17
[HTML讨论组]

要在textarea中输入内容,默认为一行,当输入的内容过多时自动换行,并且高度增加?

phpcn_u1582
phpcn_u1582

全部回复(4)
给我你的怀抱

1, 用shadow

<p style="height:0; overflow:hidden;">
    <p class="shadow"></p>
</p>
<textarea style="overflow:hidden;"></textarea>

<script>
    textarea.addEventListener('input', function(e) {
        shadow.innerHTML = this.value.replace(/\</g, '&lt;').replace(/\>/g, '&gt;');
        this.height = shadow.clientHeight + 'px';
    });
</script>

2, 用 contenteditable 属性

<p contenteditable="true">这里的高度会随内容自动扩展</p>

3, 如果用

textarea.style.height = textarea.scrollHeight + 'px';

这种形式也可以调整高度, 但换行的时候会有滚动条一闪而逝, 而且高度只会增加没法减少, 是体验最差的写法.

phpcn_u1582

给textarea一个oninput事件

<textarea id="text"></textarea>
document.getElementById('text').style.height = document.getElementById('text').scrollHeight + 'px'

类似这样的

PHP中文网

http://stackoverflow.com/ques...

黄舟

textarea的总高度(用jQ的element.height(),如果是原生js,请查看手册的BIF)/ 你定义的行高

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号