HTML表单:使用换行符提交文本输入

时间:2012-10-11 19:59:43

标签: html forms

  

可能重复:
  How to save user-entered line breaks from a TEXTAREA to a database?

我在这里错过了一些简单的解决方案 - 我正在创建一个带有文本输入的表单。我希望在任何换行符中提交此内容。用户实际在textarea中写入,javascript / jquery在提交之前复制到隐藏文本输入。

我已经看到了javascript用一些已知的break-character替换/ n等的解决方案。这是唯一的出路吗?然后我必须再次将其翻译回服务器端。我真的希望将/ n作为/ n提交。

2 个答案:

答案 0 :(得分:4)

您可以使用<textarea style="display:none;"></textarea>代替隐藏<input type="text">

答案 1 :(得分:2)

当提交具有普通文本区域的普通表单时,用户输入的任何换行符都将作为数据的一部分传输。它们被规范化为CR LF对。如果将textarea元素的值复制到隐藏字段,则会保留换行符。

所以问题出在其他地方。可能您的服务器端表单处理程序不准备处理换行符。或者它可能以一种使断行失去意义或完全丢失的方式使用数据。一个常见的新手错误是将从表单接收的值写入HTML文档 - 即使保留了换行符,当它们作为普通元素中的内容出现时(与例如{相反),它们被HTML规则视为等同于空格。 {1}}或textarea)。

默认情况下,浏览器自动换行创建的任何换行符都会丢失。通常没有理由保留它们,但是如果您希望这样做,请使用pre元素中的属性wrap=hard。 (该属性是非标准的,但广泛支持。=