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我们同样可以判断当前的行数