2017-02-03 9 views
1

<input value=name type=checkbox>の値が永続的である必要があります。 Cookieにはすべての値が保存されていて、ページが準備できたら値を復元する必要があります。.prop( "checked"、false)はチェックボックスをtrueにします

function setAllCookies() { 
    var checkboxs = $("#divwheretheinputsare input"); 
    for (i in checkboxs) 
     Cookies.set(checkboxs[i].value,checkboxs[i].checked); 
} 

し、それらを復元する機能は次のとおりです:

クッキーを保存する機能がある

function readAllCookies() { 
    var checkboxs = $("#divwheretheinputsare input"); 
    for (i in checkboxs) { 
     var nom = checkboxs[i].value; 
     var value = Cookies.get(nom); 
     $("##divwheretheinputsare input[value='" + nom + "']").prop("checked", value); 
    //Also tried $("##divwheretheinputsare input[value='" + nom + "']")[0].checked = value; 
    } 
} 

私はクッキーを確認することができ、正しい名前で保存され、二つの機能がありますされています完全に実行される。デバッグでは、私はこれを検出します:$( "## divwheretheinputsare input [value = '" + nom + "']")prop( "checked"、value)行が実行されると、チェックボックスは常にチェックされます値がfalseの場合コンソールでその正確な行を実行すると、チェックボックスが正しく変更されます。

また、代替コードラインは、コンソールで正しく実行されますが、関数内で正しく実行されます。 "TypeError:$(...)[0 ]は定義されていません "。

+0

クッキーストア文字列ですが、 'prop( 'checked'、boolean)にブール値が必要です' – charlietfl

答えて

0

charlieftlは、値が文字列( "true"または "false")ではなくtrue(trueまたはfalse)で、prop( "checked"、value)フィールドの値はtrueとみなされます。

試してみてください。

var value = (Cookies.get(nom) == 'true');

文字列ではなくブールにあなたの値を設定します。

関連する問題