我正在阅读一本关于HTML开发的书籍(我对此还比较陌生),尽管这本书仅在一个月前(2011年11月)出版,但作者是一位经验丰富的编码人员,他可能认为在表单中使用#
作为操作代码已经过时了吗?
因为我正尝试着理解示例代码的要点,但我无法找到有关form action="#"
的解释,尽管我进行了搜索。
<form action="#">
在谷歌、在SO和在www.w3schools.com上都有相关内容。
有人知道表单中 #
这个操作的含义吗?
我正在阅读一本关于HTML开发的书籍(我对此还比较陌生),尽管这本书仅在一个月前(2011年11月)出版,但作者是一位经验丰富的编码人员,他可能认为在表单中使用#
作为操作代码已经过时了吗?
因为我正尝试着理解示例代码的要点,但我无法找到有关form action="#"
的解释,尽管我进行了搜索。
<form action="#">
在谷歌、在SO和在www.w3schools.com上都有相关内容。
有人知道表单中 #
这个操作的含义吗?
通常,"action"属性指定表单提交的文件/页面(使用方法参数中描述的方法(post、get等))。
"# "的操作表示表单保留在同一页上,并在URL末尾添加"# "。类似的用法出现在锚点上。例如:<a href=#">Link</a>
,会保持在同一页上。
因此,表单提交到同一页,然后处理数据等。
action=""
可以工作,但不会验证。action="?"
会清除现有的查询字符串值,这可能不是理想的。当您在服务器端具有单独的 GET 和 POST 处理程序时,执行 action="#"
是有用的...即 GET 渲染表单和 POST 处理表单数据。这样做可以避免在表单中硬编码 URI,以防您稍后重新映射 URL/路由(冒着客户端 HTML 模板表单“操作”与服务器端路由处理程序不同步的风险)。 - mattpraction=""
会解析为页面地址。action="#"
会解析为页面地址+#
,这表示一个空的片段标识符。#
,当他们不会使用该属性而改用脚本时。在这些情况下,他们可以使用action=""
(或如果验证允许,则省略它)。显然,在HTML5之前需要使用action
(而#
只是一个替代),但现在不再需要使用它。
请参见操作属性:
When specified with no attributes, as below, the data is sent to the same page that the form is present on:
<form>
# 标签可以让你将数据发送到同一个文件中。我认为这是一个包含三个步骤的过程:
使用 method='#',你可以在同一个文件中完成以上所有步骤。
提交查询执行后,页面将重新加载,显示来自数据库的更新数据。