2012-06-02 62 views
0

所以我一直在googleing幾天,但到目前爲止我還沒有找到解決方案,所以我正在轉向你們,希望有甚至有可能解決方案。在每個textarea行的末尾加上jQuery的換行符

我需要在textarea中每行的末尾添加一個換行符,然後再發送給PHP。也就是說,即使用戶沒有按下回車鍵,但是如果一個單詞被剪切掉了,或者它只是跳下一行,因爲它已經填充了textarea。我需要用jQuery或Javascript來做到這一點。

有沒有人有如何這樣做的好主意?

謝謝!

更新:請記住,我還需要通過帶有Ajax的json編碼字符串將文本發送到PHP。我應該提到這一點!

+0

您應該考慮用戶按ENTER鍵並使用PHP的'nl2br'函數。 – Sarfraz

+0

你將遇到的問題是,不同的瀏覽器會在不同的地方包裝單詞,即使在textarea上有固定的寬度。爲什麼不把自己打破這麼多的話呢? – davidethell

+0

@Sarfraz這將是來自用戶的動態輸入,因此無法控制。 – lpetren

回答

1
+0

嘿嘿這正是我所需要的,我現在不想自己寫這種腳本,但是謝謝,它完美地工作。 @Mubix – lpetren

1

Textarea元素具有COLS屬性,這意味着每行的最大字符數。瀏覽器將跳轉包含(COLS + 1)個字符的單詞。你可以寫一段JavaScript,大致做這樣的事情。

  • 有一個計數器來計算自上次換行以來的字符數。
  • 以字符爲單位循環遍歷字符串。
  • 如果看到換行符,請重置計數器。
  • 如果您看到自上一行(或開始)以來的第21個字符,請向後退出,直到看到該單詞的開頭(例如空格)爲止添加行連線並重置計數器並繼續。
  • 否則增大計數器

注意包裝線是瀏覽器邏輯的一部分,所以如果你想它完全一樣的瀏覽器,你可能要研究每一個瀏覽器(例如他們認爲如字處理打破)。

0

有一個鮮爲人知的屬性,叫做wraptextarea秒。這不是標準的,所以你的瀏覽器兼容性里程可能會有所不同。使用chrome訪問http://jsfiddle.net/nj3cG/,並在觀看chrome開發工具中的網絡選項卡時提交表單。你會看到新行中得到什麼用的形式發送

enter image description here

http://www.abiglime.com/webmaster/reference/html/tags/textarea.htm

<textarea wrap="off|physical|virtual|hard|soft"> 

說明

的包裝屬性用來定義文本將如何在文本換框。可能的值:

  • off不允許自動換行
  • physical允許自動換行,並使用腳本在傳輸數據時,發送帶有換行符文本機智。在某些瀏覽器中也可以調用hard
  • virtual顯示包裝盒中的文字包裝,但在使用腳本傳輸數據時將數據作爲一長串文本發送。在某些瀏覽器中也可以調用soft