Я хочу использовать функцию CacheData (показана ниже), но когда я запускаю свой код, я продолжаю получать ошибку, которая сериализуетОбъект не является функцией (показано ниже).
Моя HTML-форма имеет id="settingsInput"
Почему CacheData () функция по ссылке выше не работает должным образом? В моей форме есть числовые поля, переключатели, средство выбора даты, раскрывающийся список параметров и флажок. только переключатели имеют начальные значения, установленные по умолчанию, которые я хочу фиксировать при загрузке страницы, поскольку они будут использоваться немедленно в функции, которая вызывается при загрузке тела страницы.
Код: Выделить всё
Код: Выделить всё
function CacheData()
{
if (typeof(Storage) !== "undefined")
{
alert("in CacheData");
var formObject = $('#settingsInput').serializeObject();
localStorage.setItem('settingsObject', JSON.stringify(formObject));
jQuery.fn.serializeObject = function() {
var formData = {};
var formArray = this.serializeArray();
for (var i = 0, n = formArray.length; i < n; ++i)
formData[formArray[i].name] = formArray[i].value;
return formData;
};
}
else
{
document.getElementById("result").innerHTML = "Sorry, your browser does not support Web Storage...";
}
}
в CacheData (Shadows_test3.html:3404) :42)
at savePosition (Shadows_test3.html:746:20)
Я пробовал вызвать функцию loadData() по той же ссылке, упомянутой выше, но CacheData по-прежнему не работает. Я переместил каждую из этих двух функций в ссылку выше в отдельные функции, каждая из которых индивидуально проверяет наличие typeof(Storage) !== null в качестве первой проверки внутри каждой функции
Код: Выделить всё
// Loading data into form
function dataLoad()
{
if (typeof(Storage) !== "undefined")
{
if (localStorage.getItem('settingsObject') !== null)
{
var inputParse = JSON.parse(localStorage.getItem('settingsObject'));
$.each(inputParse, function(key, value) {
var field = document.querySelector("[name=" + key + "]");
if (field.type == 'radio' || field.type == 'checkbox') {
field.checked = field.value == value;
} else {
field.value = value;
}
});
}
}
else
{
document.getElementById("result").innerHTML = "Sorry, your browser does not support Web Storage...";
}
}
// Saving data from form
function CacheData()
{
if (typeof(Storage) !== "undefined")
{
alert("in CacheData");
var formObject = $('#settingsInput').serializeObject();
localStorage.setItem('settingsObject', JSON.stringify(formObject));
jQuery.fn.serializeObject = function() {
var formData = {};
var formArray = this.serializeArray();
for (var i = 0, n = formArray.length; i < n; ++i)
formData[formArray[i].name] = formArray[i].value;
return formData;
};
}
else
{
document.getElementById("result").innerHTML = "Sorry, your browser does not support Web Storage...";
}
}
Подробнее здесь: https://stackoverflow.com/questions/787 ... -html-form
Мобильная версия