如果<form>中的操作字段有参数,会发生什么情况?

是否有一个很好的支持,我可以期望,如果我在HTML中做这样的事情的常见行为:

<form method="get" action="/somePage.html?param1=foo&param2=foo"> <input name="param2"></input> <input name="param3"></input> </form> 

看起来像这样的东西本质上是荒谬的,但我已经看到它在这里那里使用,我想知道在地球上预期的行为应该是什么。 浏览器是否足够聪明地去处理“&param2 = whatever&param3 = whatever”这个动作,还是他们只是抛出第二个问号? 或者是什么? 有没有这种情况,这实际上是正确的做事方式?

如果方法属性设置为GET,那么在构造表单参数值之前,浏览器从action属性中删除querystring参数。

因此,在你的例子中,提交到服务器的请求将如下所示: /somePage.html?param2=value&param3=value

所以不行,当方法是“GET”时,就像在你的例子中那样,没有理由这样做。

不知道,但我认为最好的做法是将这些variables放在隐藏的input字段中。 通过这种方式,无论您的发布方法是POST还是GET,都无关紧要。

 <form method="get" action="/somePage.html"> <input name="param2"></input> <input name="param3"></input> <input type="hidden" name="param1" value="foo" /> <input type="hidden" name="param2" value="foo" /> </form> 

在发布表单之前,您可以使用脚本将表单中的方法属性更改为“POST”,因此查询string可以在操作中使用。 尽pipe如此,它似乎几乎不是最好的解决scheme。

那么,除了最后的答案,答案是肯定的,所有的问题都得到了答案。 对于POST ,这是允许的,但是你可能会发现它不起作用的情况。 我已经看到只允许postdata 查询string的Web服务器,所以它是不可靠的。