0

所以我已经用谷歌搜索了几天,但到目前为止我还没有找到解决方案,所以我转向你们,希望甚至有可能的解决方案。

我需要在文本区域的每一行末尾添加一个换行符,然后再将其发送到 PHP。也就是说,即使用户没有按回车键,但如果一个单词被删掉或者它只是跳下一行,因为它已经填充了 textarea 。我需要用 jQuery 或 Javascript 来做。

有没有人对如何做到这一点有任何好主意?

谢谢!

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

4

3 回答 3

1

尝试这个:

http://jsfiddle.net/r7JBe/2/

于 2012-06-02T10:58:10.417 回答
1

Textarea 元素具有 COLS 属性,表示每行的最大字符数。浏览器将跳转包含第 (COLS+1) 个字符的单词。您可以编写一段大致执行此类操作的 javascript。

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

请注意,换行是浏览器逻辑的一部分,因此如果您希望它与浏览器中的完全一样,您可能必须研究每个浏览器(例如他们认为的分词)。

于 2012-06-02T10:42:49.880 回答
0

有一个鲜为人知的属性叫做wraps textarea。但它不在标准中,因此您的浏览器兼容性里程可能会有所不同。使用 chrome访问http://jsfiddle.net/nj3cG/并提交表单,同时查看 chrome 开发工具中的网络选项卡。您会在随表单发送的内容中看到换行符

在此处输入图像描述

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

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

描述

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

  • off不允许自动换行
  • physical在使用脚本传输数据时,允许自动换行并发送带有换行符的文本。也可以hard在某些浏览器中调用
  • virtualshow word wraps in box 但在使用脚本传输数据时将数据作为一长串文本发送。也可以soft在某些浏览器中调用
于 2012-06-02T11:03:21.533 回答