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 值未与表单一起发布的主要内容,如果未能解决你的问题,请参考以下文章