我想知道是否有人可以给出一个“最佳实践”的回应,使用空白HTML表单动作发布回当前页面。
有一个帖子问一个空白的HTML表单动作在这里做什么,一些像这样的页面认为它是好的,但我想知道人们是怎么想的。
我想知道是否有人可以给出一个“最佳实践”的回应,使用空白HTML表单动作发布回当前页面。
有一个帖子问一个空白的HTML表单动作在这里做什么,一些像这样的页面认为它是好的,但我想知道人们是怎么想的。
当前回答
实际上,当前HTML5草案的Form Submission分段不允许action=""。这是违反规格的。
action和formaction内容属性(如果指定)必须具有一个有效的非空URL值,该值可能被空格包围。(重点)
墨卡托的回答中引用的部分是对实现的要求,而不是对作者的要求。作者必须遵循作者要求。如何阅读本规范:
特别是,有一些一致性要求适用于生产者,例如作者和他们创建的文档,还有一些一致性要求适用于消费者,例如Web浏览器。它们可以通过它们的需求来区分:对生产者的需求说明了允许什么,而对消费者的需求说明了软件如何操作。
html4允许一个空的url,而html4的改变是因为“浏览器对一个空的action=”“属性”做了一些奇怪的事情。考虑到更改的原因,最好也不要在HTML4中这样做。
其他回答
实际上,当前HTML5草案的Form Submission分段不允许action=""。这是违反规格的。
action和formaction内容属性(如果指定)必须具有一个有效的非空URL值,该值可能被空格包围。(重点)
墨卡托的回答中引用的部分是对实现的要求,而不是对作者的要求。作者必须遵循作者要求。如何阅读本规范:
特别是,有一些一致性要求适用于生产者,例如作者和他们创建的文档,还有一些一致性要求适用于消费者,例如Web浏览器。它们可以通过它们的需求来区分:对生产者的需求说明了允许什么,而对消费者的需求说明了软件如何操作。
html4允许一个空的url,而html4的改变是因为“浏览器对一个空的action=”“属性”做了一些奇怪的事情。考虑到更改的原因,最好也不要在HTML4中这样做。
您能做的最好的事情就是完全省略action属性。如果你省略了它,表格将被提交到文件的地址,即同一页。
也可以将其保留为空,任何实现HTML表单提交算法的浏览器都会将其视为等同于文档的地址,这主要是因为这是浏览器当前的工作方式:
8. 让action成为提交者元素的动作。 9. 如果action为空字符串,则让action为文档的地址。 注意:这一步是故意违反RFC 3986的,它需要在这里处理基本URL。这种违反的动机是希望与遗留内容兼容。(RFC3986)
这肯定适用于当前所有的浏览器,但在一些旧的浏览器中可能无法正常工作(“浏览器会对空的action=""属性"做一些奇怪的事情),这就是为什么规范强烈不鼓励作者让它为空:
action和formaction内容属性(如果指定)必须具有一个有效的非空URL值,该值可能被空格包围。
这将在HTML5中验证。
<form action="#">
只使用
?
<form action="?" method="post" enctype="multipart/form-data" name="myForm" id="myForm">
它并不违反HTML5标准。
当我使用Classic ASP时,我经常这样做。我通常在需要对输入进行某种服务器端验证时使用它(在AJAX出现之前)。我所看到的主要缺点是它没有在文件级别上将编程逻辑与表示分开。