为什么将搜索输入放在表单标签中?

时间:2009-05-18 17:47:33

标签: html search

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

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

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

6 个答案:

答案 0 :(得分:8)

你怎么读tutorial on HTML forms

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

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

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

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

编辑2

  

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

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

答案 1 :(得分:4)

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

答案 2 :(得分:0)

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

修改:为了更好地理解,我建议你阅读HTML Forms and Input

答案 3 :(得分:0)

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

www.w3schools.com和其他人有一些很好的建筑表格教程。

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

答案 4 :(得分:0)

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

  

为什么我不必在页面上放置一个表单标签让它回发?

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

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

答案 5 :(得分:0)

我明白了原因,这很简单:

而不是为所有页面添加一个大的通用表单标记,这些网站只是将表单放在将返回到服务器的部分,但为什么不将所有内容放在表单中,这就是我现在想要理解的内容。