需求:判斷當前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我們同樣可以判斷當前的行數