textarea值高度

我有一个textarea,其设置css高度为85px。 用户可以在该textarea中键入内容行,我想知道text / val有多高,而不是文本区域本身。

有没有办法检查内部文本的高度,包括换行符?

我会将textarea的内容复制到另一个具有相同宽度的元素中, 隐藏 ,然后获得它的高度。

我就是这样做的,虽然显然加价只是通用的,可以根据你的需要进行修改:

HTML

 

CSS

 textarea, div { width: 150px; resize: none; border: 1px solid #ccc; padding: 0; margin: 0; font-size: 1em; font-family: Arial, sans-serif; } textarea { height: 85px; } div { min-height: 85px; } 

jQuery的:

 $('textarea').keyup( function(e){ var t = $(this).val(); $(this).next('.tmp').text(t); $(this).prev('.counter').text('Height is: ' + $(this).next('.tmp').outerHeight()); }); 

JS小提琴演示 。

这可以修改为根据需要动态添加和删除.tmp div 。 但我试图尽可能地保持这一点,所以我把它硬编码了。

参考文献:

  • keyup()
  • val()
  • next()
  • prev()
  • text()
  • outerHeight() (和height() )。

我不确定你为什么要这样做。 如果您只是想让盒子的大小增加以匹配文本,请使用以下许多扩展名之一:

http://unwrongest.com/projects/elastic/

如果这不是您想要的,您可以查看源代码并了解它们是如何实现这一目标的,并模仿它。