表格上真的需要采取行动吗?

时间:2012-02-22 19:22:21

标签: forms html5 html html-validation

这里说它是必需的

http://www.w3schools.com/tags/att_form_action.asp

但是我发现即使我没有指定一个动作属性,表单也会被提交,并且表单会被提交到当前页面,这正是我想要的。

4 个答案:

答案 0 :(得分:46)

要求仅限于标准。完全有可能在页面上做任何你想做的事情,而不是遵循标准。如果你这样做,事情可能无法显示或正常工作,但很可能会。我们的目标是遵循它们,我们的想法是,如果您关注它们,您的网页将始终工作;你不必担心任何事情。

是的,表单必需才能在HTML4中拥有操作属性。如果未设置,浏览器可能会使用与向其提供空字符串相同的方法。你真的应该设置action=""这是完全有效的HTML4,遵循标准,并获得相同的结果。

在HTML5中,您实际上可以在提交按钮本身上指定一个操作。如果没有,则使用表单的操作,如果未设置,则默认为空字符串(请注意,您无法在HTML5中将操作显式设置为空字符串。)

答案 1 :(得分:13)

看起来像the HTML4 spec requires it。我怀疑一些浏览器会做你想要“让事情变得更容易”的东西。我不建议依赖它。由于您处于未定义的行为,因此当提交的表单没有action时,浏览器可以合理地决定不执行任何操作。

您可以在遵循规范时获得所需的行为,方法是将操作留空(因为它是相对的,空白表示当前页面):

<form action="" ...>

正如bazmegakapa所述,HTML5规范doesn't seem to require the action attribute

  

动作和形式内容属性,如果指定,必须具有可能被空格包围的有效非空URL的值。[强调添加]

有趣的是,这意味着在HTML5中,<form action="">无效,但不清楚是否需要没有操作的表单(提交到当前页面)。

答案 2 :(得分:5)

从技术上讲,它违反了HTML 4规范,但如果未指定任何操作,则所有浏览器都会回发给响应的发起者。我同意依靠它并不是一个聪明的主意,但确实有效。

编辑:正如我已经指出这个问题被标记为HTML 5: 在HTML 5中,他们列出了不再需要的操作属性:http://www.w3schools.com/html5/att_form_action.asp符合HTML 5规范。

答案 3 :(得分:1)

//线程复活警报

扩展动漫界的答案...

如果已评估完所有按钮formaction和表单action的属性,如果“操作”仍评估为“空字符串”,则来自HTML5.2规范部分4.10.21.3第8点指出:

  

如果action为空字符串,则让action为文档的URL   表单文件。

在提交表单时,这就是您想要的。