【问题标题】:Sending multiline text using HTTP POST [duplicate]使用 HTTP POST 发送多行文本 [重复]
【发布时间】:2018-03-14 10:32:24
【问题描述】:

this answer 看来,通过 HTTP POST 方法发送的数据必须存在于表单元素中。我希望能够使用 POST 发送 <textarea>element 的内容,但我认为 <textarea> 不能成为表单的一部分。我可以使用 javascript 将 textarea 内容复制到(最好是隐藏的)表单的文本输入字段,然后发布。但这样换行符就会丢失。缺少插入特殊字符来标记换行符,是否有另一种方法可以在 POST 数据中保留换行符?

【问题讨论】:

  • 其实
  • 你能分享你的代码吗?
  • 抱歉——我在某处读到了<textarea>的解释,这对我来说暗示它不能成为表单的一部分。我站得更正了。 @fonjeekay 的代码在我手中运行良好。

标签: javascript html post


【解决方案1】:

其实<textarea>可以是<form>的一部分:

<form action="/action_page.php" id="usrform">
  Name: <input type="text" name="usrname">
  <input type="submit">
</form>

<textarea name="comment" form="usrform">Enter text here...</textarea>

【讨论】:

  • 如果你把&lt;textarea&gt; inside &lt;form&gt;...
  • @PeterB — 它有一个 form 属性代替(虽然这是一个奇怪的选择)
  • 谢谢,我现在知道了,以前从未听说过。仍然落后于 HTML5。快速搜索它还揭示了代码示例的来源:w3schools.com/tags/att_textarea_form.asp
  • 工作正常。对不起我的困惑。我想我尝试了很多变体,但错过了这个。谢谢。
【解决方案2】:

Textarea 值很容易包含在表单提交中,只要它具有“名称”属性。
您也可以在提交前通过serializing 将值包含在表单数据中。这只是您可以附加到的一串表单数据。

换行符始终保留在 textarea 值中,您只需要确保在显示该值时呈现它们,如 here 所示。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-21
    • 2017-06-13
    • 2012-01-03
    • 1970-01-01
    • 2018-07-01
    • 2010-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多