-4

私のHTMLは次のとおりです。

===================================

<input type="checkbox" id="Red" onclick="changeURL('WineType', 'Red')"> Red (30499)
<input type="checkbox" id="White" onclick="changeURL('WineType', 'White')"> White (22840)

===================================

最初に changeURL() を呼び出し、次に isChecked() 関数を呼び出します。

ただし、両方の関数が実行されると、チェック ボックスはまだオフになっています。

===================================

function changeURL(fieldname, facetname) {
    var ref= window.location.href ;
    if(fieldname == "WineType") {
        var matchPrice = location.href.match(/&fq=%7B%21tag%3Ddt1%7DWineType%3A/);

        if(matchPrice == '&fq=%7B%21tag%3Ddt1%7DWineType%3A' )
        {
            var ndStart = ref.indexOf("WineType%3A%28");
            var ndEnd = ref.indexOf("%29",ndStart );        
            ref = ref.substring(0,ndStart+12) + ref.substring(ndStart+12, ndEnd) +" OR " +facetname + ref.substring(ndEnd);
        }
        else {
            ref = ref + "?&fq=%7B%21tag%3Ddt1%7DWineType%3A%28"+facetname+"%29";
        }
    }
    window.location.href = ref;
    isChecked(facetname);
};

function isChecked(element)
{
     var field = document.getElementById(element); 
     if (element) { 
          if (field.checked) { 
                document.getElementById(element).checked= false;
          } else { 
                document.getElementById(element).checked= true; 
          } 
     }   
};  
4

2 に答える 2

0

解決策はここで試され、次のように機能しています
。1)チェックボックスのステータスをクエリ文字列と一緒に送信しました。
2)ページがリロードされると、クエリ文字列からチェックボックスのステータスを抽出し、それに応じてチェックボックスのステータスをオンまたはオフに設定します。

于 2013-02-25T04:44:07.613 に答える
0

localStorage を使用し、チェック/チェック解除が行われるたびに localStorage を更新するようにしてください。これにより、ページが読み込まれるたびに最初に localStorage をチェックし、空でない場合はそれを使用してすべてのチェックボックスにチェックを付けます。空の場合は、ページが初めて読み込まれたか、チェックが行われなかったことを意味します。

localStorage を実装する最も簡単な方法:ここ
これはすばらしい: Doc

PS私がw3schoolsを提案しているので、問題を抱えている人もいるかもしれませんが、これはlocalStorageを初めて使用する人にとって最も簡単な解決策と実装です

于 2013-02-22T07:00:26.290 に答える