提交具有多个相同名称元素的表单GET会导致长查询字符串

时间:2012-03-28 00:04:02

标签: jquery forms get

我有一个form[method=get],其中有许多复选框都具有相同的名称

提交表单时,网址最终看起来像

?MyCB=0&MyCb=4&MyCB=10

我希望GET请求在浏览器中显示为(有效且有效)。

?MyCB=0,4,10

我可以在表单上设置一个属性来执行此操作吗?

最后一种方法是使用jquery拦截GET(这就是为什么我有标记,因为那里有任何辅助函数)。

2 个答案:

答案 0 :(得分:2)

您可以使用jquery并执行此操作:

<script>
function sendtheform(){

var theurldata = $("input.MyCBclass").map(function() {
   return $(this).val();
}).get().join(",");

window.location ='yoururl.html?MyCB='+theurldata;
}
</script>

以下是表单元素HTML:

<input name="MyCB" class="MyCBclass" type="checkbox" value="1">
<input name="MyCB" class="MyCBclass" type="checkbox" value="2">
<input onClick="sendtheform()" type="button">

这将导致:

yoururl.html?MyCB=1,2

答案 1 :(得分:0)

你甚至不能使用$ _GET并使用jquery处理整个表单,然后将window.location设置为数组。

不幸的是,您无法添加允许表单将多个$ _GET变量压缩到数组中的属性。