在每个textarea行的末尾用jQuery添加换行符

时间:2012-06-02 10:28:43

标签: javascript jquery textarea line-breaks

所以我一直在谷歌上搜索几天,但到目前为止我还没有找到解决方案,所以我转向你们,希望有一个可能的解决方案。

我需要在textarea的每一行的末尾添加一个换行符,然后再发送给PHP。也就是说,即使用户没有按下回车键,但是如果一个单词被切断,或者它只是跳了一行,因为它已经填满了textarea。我需要使用jQuery或Javascript。

有没有人对如何做到有什么好主意?

谢谢!

更新:请记住,我还需要通过带有Ajax的json编码字符串将文本发送到PHP。我应该提到这个!

3 个答案:

答案 0 :(得分:1)

Textarea元素具有COLS属性,表示每行的最大字符数。浏览器将跳转包含(COLS + 1)字符的单词。你可以编写一段大致类似这样的javascript。

  • 有一个计数器来计算自上次换行以来的字符。
  • 按字符循环字符串。
  • 如果您看到换行符,请重置计数器。
  • 如果你看到自上一行(或开头)以来的第21个字符,请向后看,直到你看到单词的开头(例如空格)添加linebread并重置计数器并继续。
  • 其他增加计数器

请注意,包装行是浏览器逻辑的一部分,因此如果您想要与浏览器完全一样,则可能需要研究每个浏览器(例如他们认为是断字)。

答案 1 :(得分:1)

答案 2 :(得分:0)

wrap有一个名为textarea的鲜为人知的属性。但它不符合标准,因此您的浏览器兼容性里程可能会有所不同。使用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">

<强>描述

wrap属性用于定义文本在文本框中的换行方式。可能的值:

  • off禁止自动换行
  • physical允许自动换行,并在使用脚本传输数据时发送带有换行符的文本。也可以在某些浏览器中调用hard
  • virtual在框中显示单词换行,但在使用脚本传输数据时将数据作为一个长字符串发送。也可以在某些浏览器中调用soft