在自己的页面上提交 HTML 表单
Posted
技术标签:
【中文标题】在自己的页面上提交 HTML 表单【英文标题】:Submit HTML form on self page 【发布时间】:2012-11-11 06:57:36 【问题描述】:我想要一个 html 表单提交给它自己。如何使用action
属性?
<form action="">
<form action="#">
<form action="some/address">
<form>
哪个更好?
【问题讨论】:
我希望你已经看到这个帖子***.com/questions/1131781/… 您的文档的使用?
:
<form action="?" method="post">
它会将用户返回到同一页面。
【讨论】:
这太棒了! 没那么棒。这将删除当前 URL 的所有查询字符串(如果有)。 我要删除查询字符串:3【参考方案2】:在 2013 年,有了所有 HTML5 的东西,你可以省略 'action' 属性来自行提交表单
<form>
实际上,Form Submission subsection of the current HTML5 draft 不允许 action=""(空属性)。这是违反规范的。
来自this other Stack Overflow answer。
【讨论】:
我使用了 并得到了 action 不能为空的错误,我想我只是把它关掉 我很困惑。 w3 将action
属性全部省略,但不将其留空是否有效?
那么我需要使用 $_GET 或 $_POST 访问参数吗?
@Black 这显然会在方法标签中指定【参考方案3】:
您可以将操作属性留空。表单将自动在同一页面中提交。
<form action="">
根据w3c specification,action属性一般必须是非空的有效url。也有一些action属性可能为空的情况的解释。
元素的动作是元素的formaction属性的值,如果该元素是一个提交按钮并且具有这样的属性,或者它的表单所有者的action属性的值,如果它有一个,或者是空字符串.
所以它们仍然有效且有效:
<form action="">
<form action="FULL_URL_STRING_OF_CURRENT_PAGE">
如果您确定您的受众正在使用 html5 浏览器,您甚至可以省略 action 属性:
<form>
【讨论】:
你能确认'action'属性可以留空并验证吗? 不验证。 : 元素表单上属性操作的错误值:必须为非空。 根据 HTML5 规范,不允许空字符串作为操作:w3c.github.io/html/sec-forms.html#element-attrdef-form-action 这是唯一对我有用的东西。 link action 和 formaction 内容属性,如果指定的话,必须有一个有效的非空 URL 值,可能被空格包围......如果它有一个,否则为空字符串。 “不验证”的概念是荒谬的,因为唯一可以验证您的 XML 的人就是您。这就是 XML 的意义所在——您说一堆规则,您想为您的 XML 文档保留这些规则,在 DTD 中对它们进行编码,并让 XML 解析器进行看似困难的解析。这就是为什么 XML 在今天仍然很重要的一个原因 - 你可以采用任何你想要的模型,无论是 JSON、文本、csv,编写一个从该格式到 XML 的简单转换器,为该 XML 编写一个 DTD,然后,你跳过需要要编写自己的验证器,XML 已经做到了!【参考方案4】:如果您使用 php 提交表单,请务必使用:
action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"
for security.
【讨论】:
【参考方案5】:您可以在操作属性上使用同一页面:action='<yourpage>'
【讨论】:
以上是关于在自己的页面上提交 HTML 表单的主要内容,如果未能解决你的问题,请参考以下文章