【问题标题】:what do <form action="#"> and <form method="post" action="#"> do?<form action="#"> 和 <form method="post" action="#"> 是做什么的?
【发布时间】:2012-01-13 18:44:40
【问题描述】:

我正在阅读一本关于 html 开发的书(我对这本书还很陌生),尽管这本书在一个月前(2011 年 11 月)刚刚出版了第一版,但作者是一位经验丰富的编码员,也许使用# 形式的动作是老派吗?

因为我试图了解示例代码的要点,尽管搜索了,但我找不到form action="#" 的解释

<form action="#">   

在 google、SO 和 www.w3schools.com 上。

有人知道# 操作对表单意味着什么吗?

【问题讨论】:

  • action 指定信息将被发送到哪里。在示例中,您发现表单可能是使用 javascript 提交的
  • 这似乎是糟糕的示例代码,您几乎不需要这样做。即使您使用 javascript 提交表单,也不需要硬编码伪造的 action
  • 表单的事实标准文档可在w3c's website找到
  • 我刚刚发现像
    这样的表单有效吗?

标签: html


【解决方案1】:

Action 通常指定表单提交到的文件/页面(使用方法参数(post、get 等)中描述的方法)

# 的操作表示表单保持在同一页面上,只需在 URL 后添加 #。锚点也有类似的使用。例如,&lt;a href=#"&gt;Link&lt;/a&gt; 将停留在同一页面上。

因此,表单被提交到同一页面,然后处理数据等。

【讨论】:

  • @Nik 因为有时您的服务器操作很简单,可以在一个页面上操作。在 PHP 中构建简单的数据库查找页面时,我经常使用它。这比为您的简单操作设置两个页面更简单。
  • 那么页面只是回发给自己?
  • 确实如此,不过,我看不出 action="page.php" 与 action="#" 有何不同(假设 page.php 是当前页面)最终都刷新了页面,考虑使用 ajax 提交。
  • @Nik 是正确的。然后在该页面上构建决策逻辑,决定是处理发布的输入还是等待提交。
  • 我会使用action="" 来避免混淆,因为它指向页面,而不是页面上的锚点。但是action="#results" 可能有意义。
【解决方案2】:

action="" 将解析为页面的地址。 action="#" 将解析为页面地址 + #,这意味着一个空的片段标识符。

执行后者可能会阻止导航(新加载)到同一页面,而是尝试跳转到具有片段标识符中 id 的元素。但是,由于它是空的,它不会跳到任何地方。

通常,作者只是将# 放在类似href 的属性中,而不是在他们使用脚本的地方使用该属性。在这些情况下,他们可以只使用action=""(或者在验证允许的情况下省略它)。

【讨论】:

    【解决方案3】:

    显然,action 在 HTML5 之前是必需的(# 只是一个替代品),但您不再需要使用它。

    The Action Attribute:

    当没有指定属性时,如下所示,数据被发送到表单所在的同一页面:

    <form>
    

    【讨论】:

      【解决方案4】:

      # 标签可让您将数据发送到同一个文件。我认为这是一个三步过程:

      1. 查询数据库以填充来自
      2. 允许用户更改表单中的数据
      3. 通过php脚本重新提交数据到数据库

      使用 method='#' 您可以在同一个文件中完成所有这些操作。

      执行提交查询后,页面将使用数据库中的更新数据重新加载。

      【讨论】:

        猜你喜欢
        • 2019-07-05
        • 2020-05-19
        • 1970-01-01
        • 1970-01-01
        • 2015-05-14
        • 2012-12-14
        • 2016-09-04
        • 2020-03-21
        • 2021-09-20
        相关资源
        最近更新 更多