表单上真的需要action属性吗?

问题描述 投票:0回答:4

这里说表单元素需要

action
属性:

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

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

html forms attributes
4个回答
62
投票

该要求仅根据标准。完全有可能在页面上做任何你想做的事情而不遵循标准。如果您这样做,事情可能无法正常显示或工作,但很可能会。我们的目标是关注他们,我们的想法是,如果您关注他们,您的页面将“永远”运行;你不必担心任何事情。 是的,表单

需要

才能在 HTML4 中具有 action 属性。如果未设置,浏览器可能会使用与向其提供空字符串相同的方法。您确实应该设置 action="",它是完全有效的 HTML4,遵循标准,并达到相同的精确结果。


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


17
投票
HTML4 规范需要它

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


您可以通过将操作留空来获得您想要的行为,同时遵循规范(因为它是相对的,空白表示当前页面):

<form action="" ...>

正如 bazmegakapa 所提到的,HTML5 规范 
似乎不需要

action 属性

:

action 和 formaction 内容属性,
如果指定

,必须具有一个值,该值是可能被空格包围的有效非空 URL。[强调已添加]

有趣的是,这意味着在 HTML5 中,
<form action="">

无效,但尚不清楚是否需要没有操作的表单才能工作(提交到当前页面)。

    


7
投票
http://www.w3schools.com/html5/att_form_action.asp

,这符合 HTML 5 规范。 从技术上讲,这违反了 HTML 4 规范,但如果没有指定操作,所有浏览器都会回发响应的发起者。我同意依赖它不是一个聪明的主意,但它确实有效。


4
投票
formaction

和表单

action
属性已被评估,如果“action”仍然
evaluates
为“空字符串”,则 HTML5.2 规范部分 4.10.21.3 第 8 点指出:

如果action是空字符串,则令action为文档的URL 形成文件。

当涉及到提交表格时,这正是您想要的。

© www.soinside.com 2019 - 2024. All rights reserved.