Textarea在页面加载时没有正确调整文本大小

时间:2016-03-17 06:03:23

标签: javascript jquery textarea

我有一个textarea,我想在页面加载时展开/重新调整大小,以便它显示框中的所有文本。

但我的javascript并不是那么好。下面的代码段在我有" \ n"或" \ r"或者" \ r \ n",但如果我只是在框的末尾键入并且文本继续在下一行(换行)中,它就不能正确计算,所以这里有#s;没有\ r,\ n或\ r \ n。所以高度不能正确计算。

有谁知道更好的解决方案或如何解决这个问题?



function getTextAreaHeight(elementValue) {
    var text = elementValue;
    var lines = text.split(/\r|\r\n|\n/);
    var count = lines.length;
    var height = count * 30;
    return height + 'px';
};


var height = getTextAreaHeight($("#profileCatchPhrase").val());
$('#profileCatchPhrase').css('height', height);




编辑 赢得了这项工作???



$('#profileCatchPhrase').css('height', $('#profileCatchPhrase').scrollHeight);




2 个答案:

答案 0 :(得分:0)

这有一些有用的提示,如果你愿意使用jQuery +插件,或者你可以使用contenteditable的div:

https://css-tricks.com/textarea-tricks/

答案 1 :(得分:0)

首先应创建一个ghost文本框,然后将内容和样式复制到ghost文本框。然后,将ghost文本框的高度设置为0.然后,您可以通过scrollHeight获取文本框内容高度。

以下是一个示例:https://jsfiddle.net/majvwvcm/6/