回答
不知什麼原因,jQuery的轉換總是在<textarea>
的單個字符的值的所有換行符。也就是說,如果瀏覽器給它一個換行符\r\n
,jQuery確保返回值爲.val()
的\n
。 (其實原因可能不是「未知」;它可能會跨瀏覽器標準化結果,因爲IE報告換行符爲2個字符長)。
Chrome和Firefox都統計了<textarea>
標籤的長度「maxlength」的目的。
但是,HTTP規範堅持認爲換行符表示爲\r\n
。因此,jQuery,webkit和Firefox都會出錯。在發佈該字段時,webkit和Firefox會正確添加換行符!
結果是,如果您的服務器端代碼真的具有固定的字段值最大值,那麼<textarea>
標籤上的「maxlength」幾乎沒有用處。
編輯這仍然是2015年的問題 - 至少在Chrome 45.0.2454和IE 11.0.9600上。
「結果如果您的服務器端代碼的字段值確實具有固定的最大值,那麼
@wired_in不,因爲瀏覽器維護者是怪異的人,他們似乎並沒有理解'maxlength'(我個人的觀點)的全部觀點。我已經記錄了針對Firefox和WebKit的錯誤,以及我得到的奇怪不知情的推送的數量是驚人的。 'maxlength'實現檢查由'.value'返回的長度,也就是說表單的長度*不包含在發佈表單時引入的CR字符。我已經開始了,我會堅持使用我的JavaScript解決方案。 – Pointy 2014-10-30 04:29:51
「'maxlength'實現檢查'.value'返回的長度,也就是說沒有CR字符的長度」 - 這是相反的。 'maxlength'計算CR + LF(JavaScript沒有) - 如上面的jsfiddle和鏈接問題所示。因此,對於服務器端代碼,「maxlength」實際上是正確的,如果您也正在使用客戶端JavaScript處理這個問題,那麼這只是一個「問題」。 – MrWhite 2015-09-05 21:56:43
- 1. 的Javascript字符計數器,計馬車reurn爲2個字符
- 2. Javascript:爲什麼一個數字被視爲一個字符串?
- 3. 爲什麼斯威夫特將這個字形集羣統計爲兩個字符而不是一個字符?
- 4. 爲什麼`+ [[]] + [[]]`返回一個字符串?
- 5. 爲什麼當我只訪問一個時,Pandas返回兩行?
- 6. 爲什麼TextMate將兩個空格視爲單個字符?
- 7. 爲什麼String.prototype.match()在字符串只有一個唯一匹配時返回兩個元素?
- 8. 爲什麼我的swapCase方法只返回一個字符?
- 9. 爲什麼只有一個空間分割字符串得到[ '', '']
- 10. 爲什麼在使用LINQ vs Regex時這個字符串只返回一次?
- 11. 爲什麼這隻返回一個7?
- 12. 爲什麼JavaScript this.style [property]返回一個空字符串?
- 13. 爲什麼在輸入緩衝區中只有一個(兩個)空白字符被認爲是字符?
- 14. 爲什麼只是putchar字符串的第一個字符?
- 15. 連接兩列,只有一個回車
- 16. .NET - 計算SHA512與SHA512Managed - 爲什麼兩個「==」轉換爲字符串時?
- 17. 爲什麼Python將單個字符串計數爲相同?
- 18. 在PDO上讀取只返回一行和第一個字符。爲什麼?
- 19. 爲什麼SendKey.Send()只能在一段時間內工作一次?
- 20. 爲什麼這兩個計數返回相同的數字?
- 21. Javascript:爲什麼typeof()正在將布爾值視爲一個字符串?
- 22. 爲什麼我的字符串返回一個字符?
- 23. 爲什麼vsprintf中只在第一個字符
- 24. 爲什麼SSMS處理兩個T的一個字符
- 25. 爲什麼HttpRequestHeaders.GetValues(string)返回的IEnumerable只有1個字符串?
- 26. SQL Server 2008 VarChar(Max)只返回8000個字符。爲什麼?
- 27. 將兩個字符串字段轉換爲日期時間
- 28. 爲什麼則getIdentifier始終爲0返回一個字符串
- 29. 爲什麼jQuery.cookie回報「的翻譯:」爲一個字符串值
- 30. 爲什麼字段分隔符必須只有一個字節?
下面是你的答案與證據:http://www.whatwg.org/specs/web-apps/current-work/multipage/the-button-element.html#concept-textarea-api-value – 2012-04-05 15:47:01