HTML中的action =""和action ="#"之间的区别

0 html php forms

我已经看到了两种设置表单动作属性的方法.

#1.空动作属性:

action=""
Run Code Online (Sandbox Code Playgroud)

#2.Action属性#:

action="#"
Run Code Online (Sandbox Code Playgroud)

两者有什么不同?

Ama*_*ali 6

第一个("")解析为基本URL,第二个(#)解析为文档URL.

以下内容完全有效:

<form action="" method="post">
    <p><input type="submit"/></p>
</form>
Run Code Online (Sandbox Code Playgroud)

现在要注意,根据HTML4规范,该action属性是必需的,并且它必须包含有效的URI.但根据URI RFC,空URI仍然是一个URI:

不包含URI的URI引用是对当前文档的引用.换句话说,文档中的空URI引用被解释为对该文档的开头的引用,并且仅包含片段标识符的引用是对该文档的所标识的片段的引用.遍历此类引用不应导致额外的检索操作.但是,如果URI引用发生在始终旨在产生新请求的上下文中(如HTML的FORM元素的情况),则空URI引用表示当前文档的基URI,应该由该URI替换转换成请求时.

(摘自本页)


虽然它是强制性的,但如果没有指定动作属性,大多数(如果不是所有)浏览器都会回发给响应的发起者.

在HTML5中,该action属性不是必需的.从规格:

如果指定了操作和编码内容属性,其值必须是可能由空格包围的有效非空URL.

有关: