我发现SO把搜索输入框放在了一个表单标签内,而且我发现一些其他的网站也这样做,比如谷歌,他们把搜索输入框和搜索按钮都放在了这里:
<form action="/search" method="get" name="gs" id="tsf">
我只想知道这样做的好处,因为它似乎很常见,而我却错过了。
你是否想阅读一篇关于HTML表单的教程?
表单中输入的数据必须发送到服务器。 action
属性告诉浏览器发送到哪个服务器。
此外,有两种常见的发送数据方式:通过POST
(在HTTP
头部)和通过GET
(作为查询字符串的一部分,即URL
中问号后面的部分)。必须使用哪种方法在method
属性中指定。
POST
通常用于只需要提交一次或需要保密的数据(例如在网站上注册或登录)。GET
用于可以随时发送的数据(因为生成的URL
包含一个查询字符串,例如可以添加到书签中)。例如:Google搜索查询使用GET
,但要登录GMail帐户则使用POST
。更详细的说明可以在这里找到。
编辑:下面你问为什么整个页面不能只包裹在一个表单标签中。正如divo所正确回答的那样:您可能有多个表单可以提交到不同的服务器。例如,您可以在网页上提供两个文本字段:一个允许使用Google搜索该网站,另一个使用Yahoo搜索。通过一些创意,其他用途也会想到。
编辑2:
如果是这样的话(我没有检查),这两个看起来很有前途: form
元素的 action
属性告诉浏览器哪个服务器 URL 负责处理表单。
你还有什么其他方法可以将搜索词传输到服务器?将输入框放在表单标签内的原因是为了让浏览器将该值POST到服务器进行处理。
编辑:为了更好地理解,建议阅读HTML表单和输入。