Fork me on GitHub

textarea 是否换行的问题解决

需求:判断当前textarea是否已经换行(这个换行有2种方式:1.不断输入文字直到超过指定宽度后自动换行;2.按了回车以后进行换行)

 

单纯的解决第二种换行很简单。网上提供了很多常规的解决方案。

Demo:http://www.cnblogs.com/xrwang/archive/2011/04/27/LineBreakInJavascript.html

但是这是不完备的。是不能根本解决问题的!

 

因为很显然不能解决第一种问题.有人会说使用wrap="off"强制不能换行。那么麻烦你先了解下wrap:http://www.w3schools.com/tags/att_textarea_wrap.asp

当你不断输入确实不能换行了。但是横向文字在不断增加。这个应该不是用户可以接受的方式吧。

 

下面说说我的解决方案。

做的时候设置line-height 比如说设置为30.

现在我们把操作的textarea 叫做a

在需要校验的时候。动态创建一个textarea 叫做b 具备a的一切样式 .最好的方式是将a clone下来。获取到里面的value值。设置当前的height为line-height也就是 30.

现在简单了 判断b的scrollHeight 的值是否大于30 即可。大于30说明换行了。用scrollHeight我们同样可以判断当前的行数

 

posted @ 2013-06-26 15:19  veSky  Views(4140)  Comments(0Edit  收藏  举报