1

以下のjquery関数を使用して、チェックボックスのCookieを設定できます。値をCookieに読み込むためにマップ関数を使用していますが、Cookieは自動的に保存されます。

しかし、ページの更新時にCookieを読み取ってチェックボックスの値を設定することができません。Cookieの値に基づいてチェックボックスをオン/オフに設定する必要があります。前もって感謝します。

HTMLコード

<input type="checkbox"  id="Option1" name="Option1" />
<input type="checkbox"  id="Option2" name="Option2" />
<input type="checkbox"  id="Option3" name="Option3" />
<input type="checkbox"  id="Option4" name="Option4" />
<input type="checkbox"  id="Option5" name="Option5" />

Jqueryの部分

var $checkboxes;
//set the cookie
function setcookie() {
    var options= $checkboxes.map(function() {
        if (this.checked) return this.name;
    }).get().join(',');
   $.cookie('new_cookie', options);

}

$(function() {
    $checkboxes = $('input:checkbox').change(setcookie);

});
4

3 に答える 3

1

これを試して:

var $checkboxes = $('input:checkbox');

//set the cookie
function setcookie() {
    var options = $checkboxes.map(function () {
        if (this.checked) return this.name;
    }).get().join(',');
    $.cookie('new_cookie', options);
}

$checkboxes.change(setcookie);

$(document).ready(function () {

    var values = $.cookie('new_cookie').split(',');
    $checkboxes.prop('checked', false);
    for(var $v in values) {
        $("input[name='" + values[$v] + "']").prop('checked', true);
    }
});
于 2012-11-17T18:38:20.633 に答える
0

対応するチェックボックスを選択するには、次のことを試してください。

 var chk = $.cookie('the_cookie');

 $('#'+chk).prop('checked','checked');

また

$("'#"+chk+"'").prop('checked','checked');

これが役立つかもしれないと仮定して試してみませんでした。

于 2012-11-17T18:33:51.127 に答える
0

ブラウザを閉じたり、マルチタブを開いたりしても、Cookieを長持ちさせます。試す

var $checkboxes;
//set the cookie
function setcookie() {
    var options= $checkboxes.map(function() {
        if (this.checked) return this.name;
    }).get().join(',');
   $.cookie('new_cookie', options,{expires:1});

}

$(function() {
    $checkboxes = $('input:checkbox').change(setcookie);

});

また、ページの読み込み中または更新後の使用

var alreadySetCookies= $.cookie('new_cookie').split(',');

for(var $cookie in alreadySetCookies) {
        $("input[name='" + alreadySetCookies[$cookie] + "']").attr("checked", "checked");
}
于 2012-11-17T18:43:41.243 に答える