首页 > 解决方案 > 使用 JavaScript 或 jQuery 计算 textarea 中显示的行数

问题描述

当我说行时,我指的是文本区域中显示的换行。一条长线将换成多条线。如果一行(以换行符结尾)换行成三行,则计数必须为三。

问题是换行符不仅发生在空格处,还发生在其他字符序列处。例如在 Firefox 中,如果同一行中没有足够的空间,aaaaaa*<bbbbbb将会中断。*

这意味着我们不能简单地使用文本区域的宽度和空格可以容纳的字符数来计算显示的行数。显然,计算换行符没有用,因为它忽略了换行。有一种方法可以通过使用 textarea 属性在换行符处强制插入换行符wrap="hard"。据我了解,这只发生在表单提交到服务器时。这不是一个合适的解决方案,因为我们希望在 JavaScript 中进行计数。

问题的另一个变体是,“有没有办法将光标移动到下一个显示的行?” 我尝试了以下操作,但这根本不会移动光标,它只会“模仿”向下箭头键事件:

var e = $.Event( "keydown", { which: 40 } );
...
$(this).trigger(e);

标签: javascriptjquerydomtextarea

解决方案


推荐阅读