我有以下表格
<form action="#!/search/" method="get" style="display:inline;" id="hdr_q">
<table cellpadding="0" cellspacing="0">
<tr><td><input id="f_peoples" name="q" class="sb_box" size="40" autocomplete="off">
<input type="hidden" value="0" name="o">
<input type="hidden" value="all" name="st">
</td><td> </td><td width="20px" valign="middle">
<input type="submit" id="sfind" name="find" value="Search"></td></tr></table>
</form>
当我点击搜索按钮时,它会转到 http://domain.com/?q=f&o=0&st=all&find=#!/search/ 虽然我希望它提交到http://domain.com/#!/search/?q=f&o=0&st=all&find= 如何识别
答案 0 :(得分:4)
就表单而言,将数据“提交”到片段标识符是没有意义的 - 它永远不会发送到服务器。查询字符串始终位于片段标识符之前。
如果您想实现这一目标,则需要使用JavaScript构建URI,而不是使用标准表单提交技术。大多数通用JS库都带有serialise形式数据到标准编码数据的例程,这将为您提供最大程度的支持。
答案 1 :(得分:-1)
设置action=""
。空操作会将表单发送给自己。
另外,你真的想发送提交按钮的值吗?
我可以建议,取出提交按钮的name="find"
。
如果你想在最后找到&amp; find =,请添加一个没有值的隐藏字段。
<form action="" method="get" style="display:inline;" id="hdr_q">
<table cellpadding="0" cellspacing="0">
<tr><td><input id="f_peoples" name="q" class="sb_box" size="40" autocomplete="off">
<input type="hidden" value="0" name="o">
<input type="hidden" value="all" name="st">
</td><td> </td><td width="20px" valign="middle">
<input type="hidden" id="find" name="find" value=""/>
<input type="submit" id="sfind" value="Search"></td>
</tr>
</table>
</form>