Ale*_*lex 35 html forms html5 html-validation
这里说它是必需的
http://www.w3schools.com/tags/att_form_action.asp
但我发现即使我没有指定一个动作属性,表单也会被提交,并且表单会被提交到当前页面,这正是我想要的.
ani*_*son 47
要求仅限于标准.完全可以在页面上做任何你想做的事情,而不是遵循标准.如果你这样做,事情可能无法显示或正常工作,但很可能会.我们的目标是遵循它们,我们的想法是,如果您遵循它们,您的页面将始终有效; 你不必担心任何事情.
是的,表单需要在HTML4中具有action属性.如果未设置,浏览器可能会使用与向其提供空字符串相同的方法.你真的应该设置action=""
哪个是完全有效的HTML4,遵循标准,并获得相同的确切结果.
在HTML5中,您实际上可以在提交按钮本身上指定操作.如果没有,则使用表单的操作,如果未设置,则默认为空字符串(请注意,您无法在HTML5中将操作显式设置为空字符串).
Rei*_*ica 14
看起来HTML4规范需要它.我怀疑一些浏览器会做你想要"让事情变得更容易"的东西.我不建议依赖它.由于您处于未定义的行为,浏览器可以合理地决定在表单提交时不执行任何操作action
.
您可以在遵循规范的情况下通过将操作留空来获得所需的行为(因为它是相对的,空白表示当前页面):
<form action="" ...>
Run Code Online (Sandbox Code Playgroud)
正如bazmegakapa所述,HTML5规范似乎不需要以下action
属性:
动作和格式化内容属性(如果已指定)必须具有可能由空格包围的有效非空URL的值.[强调添加]
有趣的是,这在HTML5中意味着<form action="">
无效,但是不清楚是否需要没有操作的表单(提交到当前页面).
从技术上讲,它违反了HTML 4规范,但如果没有指定任何操作,所有浏览器都会回发给响应的发起者.我同意依靠它并不是一个明智的想法,但确实有效.
编辑:由于它已经向我指出,这个问题被标记为HTML 5: 在HTML 5,他们列为不再需要的action属性: http://www.w3schools.com/html5/att_form_action.asp这是在符合HTML 5规范.