.prop("проверил", ложь) делает флажок истинным
У меня есть немного <input value=name type=checkbox>
чьи ценности должны быть постоянными. Поэтому я сохранил в 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 хранятся с правильным именем и две функции полностью выполнены. С помощью отладки я обнаруживаю следующее: когда выполняется строка $("##divwheretheinputsare input[value='" + nom + "']"). Prop("checked", значение), флажок всегда проверяется, независимо от того, если значение ложно. Если я выполню эту точную строку в консоли, флажок поменяется правильно...
Кроме того, альтернативная кодовая строка правильно выполняется в консоли, но в функции она сбрасывается: "TypeError: $(...)[0] не определено".
1 ответ
Как упоминалось в charlietfl, ваше значение charlietfl в виде строки ("истина" или "ложь"), а не (истина или ложь), и любое значение в поле проп ("проверено", значение) будет приниматься за истину.
Пытаться:
var value = (Cookies.get(nom) == 'true');
Это установит ваше значение в логическое значение, а не в строку.