【发布时间】:2012-03-28 00:04:02
【问题描述】:
我有一个form[method=get],其中有许多复选框都具有相同的名称。
提交表单时,url 最终看起来像
?MyCB=0&MyCb=4&MyCB=10
我希望 GET 请求在浏览器中显示为(有效且有效)。
?MyCB=0,4,10
我可以在表单上设置一个属性来执行此操作吗?
最后的手段是使用 jquery 拦截 GET(这就是为什么我标记为这样,以防有任何辅助函数)。
【问题讨论】:
我有一个form[method=get],其中有许多复选框都具有相同的名称。
提交表单时,url 最终看起来像
?MyCB=0&MyCb=4&MyCB=10
我希望 GET 请求在浏览器中显示为(有效且有效)。
?MyCB=0,4,10
我可以在表单上设置一个属性来执行此操作吗?
最后的手段是使用 jquery 拦截 GET(这就是为什么我标记为这样,以防有任何辅助函数)。
【问题讨论】:
您可以使用 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
【讨论】:
您甚至不能使用 $_GET 并使用 jquery 处理整个表单,然后将 window.location 设置为数组。
不幸的是,您不能添加允许表单将多个 $_GET 变量压缩到数组中的属性。
【讨论】: