表单action
属性为“#”(数字/磅符号/符号/字符)时,这是什么意思?
当表单输入的formaction
属性设置为“#”时会发生什么?这是否会阻止输入提交到服务器?
<form method="GET" action="example.php">
<input type="text" size="20" name="text1" value="text1" formaction="#"/>
<input type="text" size="20" name="text2" value="text2"/>
<input type="submit" value="Submit"/>
</form>
答案 0 :(得分:11)
#
作为网址引用的含义(无论是action
还是formaction
属性值还是其他)是对当前基本文档开头的引用。除非已设置<base href=...>
标记,否则基础文档是当前文档。
取决于具体情况。通常,浏览器再次使用URL中的查询部分请求页面(并且页面再次加载,这可能意味着运行了客户端脚本),但如果之前使用过相同的查询,则浏览器可能会使用它的缓存。此外,当引用文档的开头时,关注任何表单元素都会丢失,页面可能会向后滚动。
因此尽管#
在某些编码风格中相当常见,但它并不可靠;使用客户端事件处理程序可以更好地实现其目的。
formaction
属性仅对提交按钮有意义。文本输入元素不构成提交按钮,即使它可能触发表单提交,因此此属性将被忽略。
答案 1 :(得分:2)
表单将提交给自己(当前URL)。我认为这与空行动相同。
此外,如果稍后将通过javascript更改操作,则非常有用。
答案 2 :(得分:1)
在w3schools上解释:http://www.w3schools.com/html5/html5_form_attributes.asp
表单覆盖属性
表单覆盖属性允许您覆盖其中的一些 为表单元素设置的属性。
表单覆盖属性为:
formction - 覆盖表单操作属性
formenctype - 覆盖表单enctype属性
formmethod - 覆盖表单方法属性
formnovalidate - 覆盖表单novalidate属性
formtarget - 覆盖表单目标属性
注意:表单覆盖属性适用于以下类型:
提交和图片。
<form action="demo_form.asp" method="get" id="user_form">
E-mail: <input type="email" name="userid" /><br />
<input type="submit" value="Submit" />
<br />
<input type="submit" formaction="demo_admin.asp" value="Submit as admin" />
<br />
<input type="submit" formnovalidate="true"
value="Submit without validation" />
<br />
</form>
所以是的,你绝对正确它会覆盖动作,但它只覆盖输入类型提交和图像,而不是文本。因此,您可以在同一表单中使用2个不同的提交按钮,但可以导致不同类型的验证。这就是我用它的原因。
所以#会将操作放在同一页面而不是另一页面上。