我想知道是否有人可以给出使用空白HTML表单操作回发到当前页面的"最佳实践"响应.
有一篇帖子询问这里有一个空白的HTML表单动作,有些像这样的页面表明它很好,但我想知道人们的想法.
您可以做的最好的事情是完全忽略action属性.如果您将其删除,表单将提交到文档的地址,即同一页面.
也可以将其留空,任何实现HTML表单提交算法的浏览器都会将其视为与文档地址等效,这主要是因为浏览器当前的工作原理如下:
8.
让action成为提交者元素的动作.
9.
如果action是空字符串,则让action为文档的地址.注意:此步骤是故意违反 RFC 3986,这需要在此处进行基本URL处理.这种违规行为的动机是希望与传统内容兼容.[RFC3986]
这肯定适用于所有当前的浏览器,但在某些旧版浏览器中可能无法正常工作(" 浏览器使用空操作=""属性 " 做奇怪的事情),这就是为什么规范强烈反对作者将其留空的原因:
在
action
与formaction
内容属性,如果指定,必须有一个值是一个有效的非空URL用空格潜在的包围.
实际上,当前HTML5草案的表单提交子部分不允许action=""
.这是违反规范的.
在
action
与formaction
内容属性,如果指定,必须有一个值是一个有效的非空 URL用空格潜在的包围.(重点补充)
mercator的答案中引用的部分是对实现的要求,而不是作者.作者必须遵循作者的要求.引用如何阅读此规范:
特别是,有一致性要求适用于生产者,例如作者及其创建的文档,并且存在适用于消费者的一致性要求,例如Web浏览器.它们可以根据它们的要求来区分:生产者要求允许的是什么,而对消费者的要求说明了软件的行为方式.
HTML4的变化 - 确实允许空URL - 是因为" 浏览器使用空action=""
属性做奇怪的事情 ".考虑到改变的原因,也许最好不要在HTML4中这样做.
这将通过HTML5验证.
如果您使用php汇总表单,您可能需要考虑以下内容.在这里阅读更多相关信息.