我有一些<input value=name type=checkbox>
的值必須是持久的。所以我在Cookies中存儲了它們中的每一個的值,並且我編寫了一個函數,該函數在頁面準備就緒時必須恢復這些值。.prop(「checked」,false)使複選框爲真
其保存的cookies功能是:
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;
}
}
我可以確認的Cookie存儲使用正確的名稱和兩個功能完成執行。通過調試,我檢測到:當行$(「## div wheretheputsare input [value ='」+ nom +「']」)。prop(「checked」,value)被執行時,複選框總是被檢查,無論如果價值是假的。如果我在控制檯中執行該確切的行,該複選框會正確更改...
此外,備用代碼行在控制檯中正確執行,但在其中刪除的函數中:「TypeError:$(...)[0 ]未定義「。
Cookie存儲字符串,但您需要'prop('checked',boolean)的布爾值' – charlietfl