0

さまざまなカテゴリで動的になる可能性のある、いくつかの異なる検索パラメーターがあります。私の問題は、jqueryを使用してチェックボックスがクリックされているかどうかを確認し、パラメータが挿入されるようにURLを変更する必要があることです。

1 つの検索パラメーター ボックスの 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 に答える