代码之家  ›  专栏  ›  技术社区  ›  Incognito

为什么存在<a>而不是方法类型的表单提交?

  •  0
  • Incognito  · 技术社区  · 15 年前

    我只是好奇,为什么HTML有一个锚标记用于执行特定的GET请求,而不能够更改HTTP请求类型,或者为什么不使用表单提交约定,因为我们可能无论如何都有获取变量的可能性。

    更有趣的是锚标记如何链接到同一页面的ID部分。

    这是一个很好的理由,还是仅仅是一个教条式的遗留问题?

    编辑:我不是在问他们做什么,我是在质疑锚标签和表格提交的惯例。

    为什么它不是一个包含这些基础的HTTP请求元素,并且默认为get,所以它与一个链接一起工作?为什么要决定这项公约?我是说这听起来很疯狂,我想知道从决定的时候起是否有任何理由。

    3 回复  |  直到 15 年前
        1
  •  1
  •   Gumbo    15 年前

    锚点连接两个文档或文档的一部分,即当前文档和引用文档。但是一种形式没有。表单用于发送查询。就是这样。

        2
  •  1
  •   Harmen    15 年前

    这个 <a> 标记用于从一个页面导航到另一个页面,这只需要GET请求。因为URL支持发送变量的可能性(例如 ?a=b )绝对不需要更复杂的标签。

    显然, <A & GT; 标记是一个内联元素,而 <form> 标记是块元素。所以你可以得出结论,锚定标签需要 简单的 ,而表单元素可能更复杂一些。

        3
  •  1
  •   Diodeus - James MacFarlane    15 年前

    它更容易使用 得到 因为您可以用一个字符串执行整个操作,而不需要附加标记。它短而简单,对于大多数参数传递和导航应用来说,它是完美的。

    Post用于表单和文件附件。GeT大小有限,Post大小不限。

    更有趣的是锚标签 链接到同一页的ID部分。

    有充分的理由吗,还是这个 只是一个教条式的遗留物?

    不,哈希URL仍然有用,并且是页面内导航的良好非javascript回退。为了维护基于Ajax的页面的状态和书签,哈希URL现在被提升到下一个级别。