Javascript 如何制作只读<;s:textarea/>;与其内容相符

Javascript 如何制作只读<;s:textarea/>;与其内容相符,javascript,html,struts2,textarea,struts-tags,Javascript,Html,Struts2,Textarea,Struts Tags,我的表单中有一个文本区域: 还有几个文本区域字段。我想使这些文本区域在只读模式下适合其内容 因为我已经指定了rows=8,如果内容只填充了2行,它有时会显示一个空白区域,或者如果内容超过8行,它会显示一个滚动条 如何根据这些文本区域的内容为其提供正确的大小,而不使用滚动条?您可以在我的评论中使用链接 关于你的评论 我的文本区域处于读取模式,没有可用于它们的键控功能 您不需要任何keyup处理程序:因为它是只读的,请在页面加载后执行一次: 功能自动高度(a){ if(!$(a).prop(

我的表单中有一个文本区域:


还有几个文本区域字段。我想使这些文本区域在只读模式下适合其内容

因为我已经指定了
rows=8
,如果内容只填充了2行,它有时会显示一个空白区域,或者如果内容超过8行,它会显示一个滚动条

如何根据这些文本区域的内容为其提供正确的大小,而不使用滚动条?

您可以在我的评论中使用链接

关于你的评论

我的文本区域处于读取模式,没有可用于它们的键控功能

您不需要任何
keyup
处理程序:因为它是只读的,请在页面加载后执行一次:


功能自动高度(a){
if(!$(a).prop('scrollTop')){
做{
var b=$(a).prop('scrollHeight');
var h=$(a).height();
$(a).高度(h-5);
}
而(b&(b!=$(a).prop('scrollHeight'));
};
$(a).height($(a).prop('scrollHeight')+20);
}
$(函数(){
//调用document.ready中的函数
自动高度($(“#myTextarea”);
});

很抱歉,这个例子对我不起作用。我的文本区域处于读取模式,并且没有可用于它们的keyup函数。谢谢,我是用同样的方法完成的,唯一忘记的是在document.ready()函数上调用它。我把它叫做标签。在某种程度上,现在字段中没有大文本的滚动条。但对于像1-2行这样的小文本,它不会将大小重新调整为无行。是因为我没有提到最大高度吗?在这种情况下,最大高度应该是多少?50像素?我可以用这个样式吗?非常感谢你的帮助,不客气。我不确定你的其他问题,但我记得我在SO上见过这样的带有maxHeight处理的脚本(用于在大尺寸文本区域上添加滚动条),而对于min height,它可能与一些默认值有关,我会尝试将rows属性改为我已经更改了rows属性。它工作得很好。想一想,只需要将值20更改为更小的值,以便在底部添加更少的空间。再次感谢对我有用。