【问题标题】:Submitting form GET with multiple same name elements results in long querystring提交具有多个相同名称元素的表单 GET 会导致长查询字符串
【发布时间】:2012-03-28 00:04:02
【问题描述】:

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

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

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

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

?MyCB=0,4,10

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

最后的手段是使用 jquery 拦截 GET(这就是为什么我标记为这样,以防有任何辅助函数)。

【问题讨论】:

    标签: jquery forms get


    【解决方案1】:

    您可以使用 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
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多