0

我有一些不同的搜索参数,它们在不同的类别中可以是动态的。我的问题是,我需要使用 jquery 检查是否单击了复选框,然后更改 URL 以便插入参数。

我的一个搜索参数框的 HTML 是:

<h3>{heading}</h3>
<div class="{class} {parameter} searchParam" name="class">
    <ul>
        <li><input type="checkbox" name="{name}" value="{value}" />{value}</li>
    </ul>
</div>

每个参数都有“searchParam”作为类 - 其他参数是动态的。

我需要为每个 .searchParam 创建一个 URL 部分,以便如果例如 3 个搜索参数已检查值(li 中的输入),则 URL 将如下所示:

http://domain.com/param1=value1,value2,value3.param2=value1,value2.param2=value1

这可能吗?

4

1 回答 1

0

我是这样解决的:

$(document).ready( function() {
        var params = [];

        $(".searchParam").click(function(){
            params = [];
            $(".searchParam").each(function(index){
                var name = $(this).attr('name');
                var values = $('.'+ name +' input:checkbox:checked').map(function (){ return this.value }).get();

                if(values.length > 0){
                    params.push({'name': name, 'values': values }); 
                }           
            });

            var curUrl = $(location).attr('href');
            var newUrl = curUrl.split('/');
            var urlNumPar = newUrl.length - 1;

            var redirectURL = '';

            $(newUrl).each(function(index, val){
                if( index == urlNumPar)
                {
                } else {
                    redirectURL += val+"/";
                }
            });

            $(params).each(function(index, val){
                if(params.length > 1 && index > 0)
                {
                    redirectURL += ".";
                }
                redirectURL += val['name'] + "=" + val['values'];
            });

            window.location.href = redirectURL;
        });
    });
于 2012-09-07T20:06:01.117 回答