我发现的所有关于此的文档都非常模棱两可,但似乎大多数浏览器不会处理和提交附加到 <form> 操作的查询字符串。执行此操作的正确方法是将查询参数作为隐藏文本字段包含在 <form> 容器的主体中。所以代替这个:
<form style="display: inline;" action="/forum?id=2&page=5">
<input type="submit" value="Edit"/></form>
做这个:
<form style="display: inline;" action="/forum">
<input type="hidden" name="id" value="2"/>
<input type="hidden" name="page" value="5"/>
<input type="submit" value="Edit"/>
</form>
HTML 规范规定表单动作必须是 HTTP URI,并且 URI 的定义确实包括查询字符串的可能性;但是,如果没有别的,当使用隐藏输入的选项是一种更清晰、更不模糊的解决方案时,在表单操作中包含查询字符串变量可能应该被认为是错误的形式。
此外,正如 Ron Rothman 在另一个答案中所指出的,在这种情况下根本没有理由使用 <form> ——只需使用带有适当 href 的链接:
<a class="button" href="/forum?id=2&page=5">Edit</a>
使用这个 CSS(或类似的东西):
.button {font-size: small;
font-family: Verdana, Arial, sans-serif;
text-decoration: none;
background-color: #DDDDDD;
color: #222222;
padding: 1px 12px 1px 12px;
border-radius:7px;
border-top: 1px solid #CCCCCC;
border-right: 1px solid #333333;
border-bottom: 1px solid #333333;
border-left: 1px solid #CCCCCC;}