在自己的页面上提交HTML表单

OTA*_*TAR 93 html forms url http

我想要一个html表单提交给自己.我该如何使用该action属性?

  1. <form action="">
  2. <form action="#">
  3. <form action="some/address">
  4. <form>

哪个更好?

Mil*_*ern 116

在2013年,使用所有html5内容,您可以省略"action"属性来自行提交表单

<form>
Run Code Online (Sandbox Code Playgroud)

实际上,当前HTML5草案表单提交子部分不允许action =""(空属性).这是违反规范的.

这个其他Stackoverflow回答

  • 我糊涂了.w3是否有效地将"action"属性全部放在一起,但不能将其留空? (2认同)

mur*_*zel 18

您可以将操作属性留空.表单将自动在同一页面中提交.

<form action="">
Run Code Online (Sandbox Code Playgroud)

根据w3c规范,action属性一般必须是非空的有效URL.对于某些情况,还可以解释action属性可能为空.

元素的动作是元素的形成属性的值,如果元素是提交按钮并具有这样的属性,或者它的表单所有者的动作属性的值,如果它有一个,或者是空字符串.

所以它们仍然有效且有效:

<form action="">
<form action="FULL_URL_STRING_OF_CURRENT_PAGE">
Run Code Online (Sandbox Code Playgroud)

如果您确定您的观众使用的是html5浏览器,您甚至可以省略action属性:

<form>
Run Code Online (Sandbox Code Playgroud)

  • 不验证.:元素表单上属性操作的值不正确:必须为非空. (4认同)
  • 根据HTML5规范,不允许将空字符串作为操作:http://w3c.github.io/html/sec-forms.html#element-attrdef-form-action (2认同)

小智 16

用途?:

<form action="?" method="post">
Run Code Online (Sandbox Code Playgroud)

它会将用户发送回同一页面

  • 没那么棒。这将删除当前 URL 的所有查询字符串(如果有)。 (8认同)
  • 这是最兼容和符合标准的答案。 (3认同)
  • 我想删除查询字符串:3 (2认同)

But*_*uts 9

如果您使用php提交表单,请务必使用:

action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"
Run Code Online (Sandbox Code Playgroud)

为了安全.


Dar*_*jax 0

您可以使用同一页面的操作属性来完成此操作:action='<yourpage>'