Textarea 值未与表单一起发布

Posted

技术标签:

【中文标题】Textarea 值未与表单一起发布【英文标题】:Textarea value not getting posted with form 【发布时间】:2013-09-19 22:29:16 【问题描述】:

我在提交表单时尝试输入 textarea 标签:

<textarea id="confirmationText" class="text" cols="86" rows ="20" name="confirmationText" form="confirmationForm"></textarea>

<form action="sendConfirmation.php" name="confirmationForm" method="post">
   <input type="submit" value="Email" class="submitButton">
</form>

如您所见,我在 textarea 标记中设置了 form="confirmationForm" 属性。我使用 Live HTTP Headers 来捕获 POST 请求并且它是空的(所以我知道问题不在 sendConfirmation.php 中,问题是没有 POST 确认文本)。我已经搜索了网络,据我所知,我已经正确设置了。

【问题讨论】:

【参考方案1】:

尝试将它放在表单标签中,如下所示......它应该可以工作

<form action="sendConfirmation.php" name="confirmationForm" method="post">
    <textarea id="confirmationText" class="text" cols="86" rows ="20" name="confirmationText"></textarea>

   <input type="submit" value="Email" class="submitButton">
</form>

但是您也可以使用相同的方法,但您需要提供 from id 属性

<form action="sendConfirmation.php" id="confirmationForm" method="post">
   <input type="submit" value="Email" class="submitButton">
</form>

【讨论】:

还是不行。我实际上已经读过,如果您设置输入标签的“form”属性,则不需要将它们放在 标签内。反正我试过了。内容仍未发布。 提供 from id 而不是 name 具有相同的值,然后尝试 谢谢!就是这样。我认为这是必须设置的表单名称。 解决我的错误的方法是将 textarea 的 id 和 name 属性设置为精确的保存值!例如 【参考方案2】:

你必须在textarea的form属性中填写表单的id,而不是名称。

尝试:

<textarea id="confirmationText" class="text" cols="86" rows ="20" name="confirmationText" form="confirmationForm"></textarea>

<form action="sendConfirmation.php" id="confirmationForm" name="confirmationForm" method="post">
   <input type="submit" value="Email" class="submitButton">
</form>

来源:http://www.w3schools.com/tags/att_textarea_form.asp

【讨论】:

@WalrustheCat 不是烧瓶后端框架吗?如果是这样,它应该对此没有影响,因为它只在请求中提交数据后处理数据。尝试在此处发送您的代码,我可以看看是否能找到问题所在。【参考方案3】:

确保你没有错过 textarea 标签的 name 属性。这在 django 中发生在我身上。

【讨论】:

谢谢——刚刚被这个咬了!【参考方案4】:

只需将 Form="formId" 属性添加到 TextArea 标记并将 Id 分配给 Form

<textarea id="confirmationText" class="text" cols="86" rows ="20" name="confirmationText" form="confirmationForm"></textarea>

<form action="sendConfirmation.php" id="confirmationForm" name="confirmationForm" method="post">
   <input type="submit" value="Email" class="submitButton">
</form>

【讨论】:

【参考方案5】:

你需要把你的文本区域放在表单标签内

 <form action="sendConfirmation.php" name="confirmationForm" method="post">
    <textarea id="confirmationText" class="text" cols="86" rows ="20" name="confirmationText" form="confirmationForm"></textarea>
    <input type="submit" value="Email" class="submitButton">
</form>

当一个表单被提交时,它里面的所有东西都会被发送,表单标签之外的任何输入都会被忽略。

【讨论】:

还是不行。我实际上已经读过,如果您设置输入标签的“form”属性,则不需要将它们放在
标签内。反正我试过了。内容仍未发布。
如果您使用的是 Chrome 或 Firefox,您可以打开开发工具,转到网络选项卡,当您提交表单时检查数据是否正在提交,这将帮助您确定是否是因为客户端或服务器端的问题。 net.tutsplus.com/tutorials/…【参考方案6】:

我遇到了同样的问题,通过在 textarea 中添加 method="post" 得到了解决。

【讨论】:

【参考方案7】:
<form action="sendConfirmation.php" name="confirmationForm" method="post">
<textarea id="confirmationText" class="text" cols="86" rows ="20" name="confirmationText" form="confirmationForm"></textarea>
   <input type="submit" value="Email" class="submitButton">
</form>

<form action="sendConfirmation.php" name="confirmationForm" method="post" id="confirmationForm">

需要在表单标签中添加id

textarea form="confirmationForm"匹配form id="confirmationForm"

试试看

【讨论】:

【参考方案8】:

这里有点死灵,但它在 Google 搜索排名中仍然很高,所以加上我的 2 美分 - 如果 textarea 在表单内,最终对我有用的不是使用 form= 属性。即使名称与表单的名称相同,但直到我删除了 form= 位,它才起作用。尝试了 defaultValue,尝试将一些文本放入 textarea 本身,这些都没有帮助。

【讨论】:

【参考方案9】:

我的textarea 中有disabled="disabled"attribute。它也会阻止提交input

【讨论】:

【参考方案10】:

它会起作用的。

<textarea id="confirmationText" class="text" cols="86" rows ="20" name="confirmationText" form="confirmationForm"></textarea>

<form action="sendConfirmation.php" id="confirmationForm" method="post">
   <input type="submit" value="Email" class="submitButton">
</form>

只需更改或添加 textarea 标签中的 form 属性,其值为 form 标签的 id。

【讨论】:

【参考方案11】:

尝试将它放在表单标签旁边,如下所示......它应该可以工作。

<form action="sendConfirmation.php" name="confirmationForm" method="post">
<textarea id="confirmationText" class="text" cols="86" rows ="20" name="confirmationText" form="confirmationForm"></textarea>
   <input type="submit" value="Email" class="submitButton">
</form>

【讨论】:

以上是关于Textarea 值未与表单一起发布的主要内容,如果未能解决你的问题,请参考以下文章

动态创建的索引字段未与表单一起提交

验证未与自定义输入组件一起传播 - Angular 4

jQuery对表单的操作

当按下向下箭头键时,防止 LWUIT 表单的最后一个组件失去焦点

yield from 未与 future 一起使用

Cookie 未与 Ajax 调用一起存储