【问题标题】:Why put search input inside a form tag?为什么将搜索输入放在表单标签中?
【发布时间】:2010-10-27 02:38:24
【问题描述】:

我发现SO将搜索输入放在表单标签中,我发现其他一些网站也这样做,例如谷歌,他们将搜索输入和搜索按钮放在这个里面:

<form action="/search" method="get" name="gs" id="tsf">

我只想知道这样做的好处,因为它似乎很常见,我很想念它。

【问题讨论】:

  • 我不知道为什么这个问题被否决了......这可能很简单,但它与编程相关且合法。

标签: html search


【解决方案1】:

您会如何将搜索词传输到服务器?在表单标签内输入的原因是浏览器可以将值 POST 到服务器进行处理。

编辑:为了更好地理解,我建议您阅读HTML Forms and Input。

【讨论】:

  • 这当然是最常见的,但也可以可能以其他方式进行.. 参数来搜索 Url 例如..
  • 表单的 action 属性定义了将内容发送到的文件的名称。 action 属性中定义的文件通常对接收到的输入做一些事情。
  • action 属性指定将数据发送到的 URL,而不是文件。
【解决方案2】:

&lt;form&gt; 元素的action 属性告诉浏览器服务器上的哪个 URL 负责处理表单。

【讨论】:

    【解决方案3】:

    搜索输入只是一个通用文本框,从页面获取信息(您正在搜索的内容)到服务器的唯一方法是通过表单发送。

    www.w3schools.com 和其他网站有一些关于构建表单的很棒的教程。

    理论上,您可以使用 JavaScript 提交信息而无需明确输入表单,但如果客户端禁用了 JavaScript,它将永远无法工作 - 而使用 HTML 将始终有效

    【讨论】:

      【解决方案4】:

      你看看tutorial on HTML forms怎么样?

      表格中输入的数据必须发送到服务器。 action 属性告诉浏览器哪个服务器。

      另外,发送数据的常用方法有两种:通过POST(在HTTP 标头中)和通过GET(作为查询字符串的一部分,@987654332 中问号后面的部分) @)。 method 属性中指定了必须使用的方法。

      POST 通常用于数据应该只提交一次或应该是私有的(例如在网站上注册或登录)的情况。 GET 用于可以根据需要经常发送的数据(因为生成的 URL 包含一个可以例如书签的查询字符串)。示例:使用 GET 发送 Google 搜索查询,但使用 POST 登录您的 GMail 帐户。更详细的解释可以在here找到。

      编辑:下面你会问为什么整个页面不能只被一个表单标签包裹。正如divo 正确回答的那样:您可能有多个表单可以提交到不同的服务器。例如,您可以在网页上提供两个文本字段:一个允许一个使用 Google 搜索站点,另一个使用 Yahoo。稍加创意就会想到其他用途。

      编辑 2:

      你能指出一个不同的教程吗? W3Schools 有错误。 – David Dorward 10分钟前

      如果是这样(我没有检查),这两个看起来很有希望:

      【讨论】:

        【解决方案5】:

        这可能有点牵强,但根据您的网站 www.igurr.com,我认为您真正要问的是:

        为什么我不必在我的页面上放置一个表单标签才能将其发回?

        这是因为 ASP.NET 会在 body 标记之后自动为您添加一个 form 标记:

        <form name="aspnetForm" method="post" action="/default.aspx" id="aspnetForm">
        

        【讨论】:

          【解决方案6】:

          我明白了原因,很简单:

          这些网站并没有为所有页面放置一个大的通用表单标签,而是将表单放在将返回服务器的部分周围,但为什么不将所有内容都放在一个表单中,这是我现在想要理解的。

          【讨论】:

          • 只是因为您可能希望在一个页面上有多个具有不同操作的多个表单。
          • 因为整个页面不是一个表单。同样的原因,您不会将整个页面放在表格或 p 标记中。
          猜你喜欢
          • 2014-05-26
          • 1970-01-01
          • 1970-01-01
          • 2017-07-21
          • 2021-11-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多