Сохранить форму с помощью localstorage HTML5
есть ли способ сохранить С на localstorage и повторите его снова, как эта логика:
форма ::::::::::::saveINTO:::::::::::::::> localstorage
форма localstorage
после заполнения формы данными я хочу сохранить форму с ее содержимым в localstorage, а затем, когда я хочу заполнить другой из сохраненных данные.
<form>
First name: <input type="text" name="firstname"><br>
Last name: <input type="text" name="lastname">
<button onclick="StoreData();">store into local storage</button>
</form>
<button onclick="RenderForm();">render from data again </button>
<form id="Copyform"><form>
JSFIDDLE пожалуйста JSFIDDLE ответа.
обновлено
2 ответов
вы можете сделать это легко, но если вы хотите сохранить массив, вам нужно будет сначала сериализовать или кодировать его, потому что localStorage не имеет дело с массивами. например:
var yourObject = $('#your-form').serializeObject();
чтобы спасти вас либо:
localStorage['variablename'] = JSON.stringify(yourObject)
или localStorage.setItem('testObject', JSON.stringify(yourObject));
и получить:JSON.parse(localStorage['yourObject']);
или JSON.parse(localStorage.getItem('yourObject'));
и тогда значения полей доступны как yourObject.fieldName
;
EDIT: в приведенном выше примере я использовал serializeObject, который является плагином jQuery. Используемый код приведен ниже. (Вы можете использовать serializeArray, если хотите, но вам придется сделать больше работы, чтобы ваши данные можно было использовать после извлечения):
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;
};
другой вариант-использовать существующий плагин.
persisto - это проект с открытым исходным кодом, который обеспечивает простой интерфейс для localStorage / sessionStorage и автоматизирует сохранение полей формы (ввод, переключатели и флажки).(Отказ от ответственности: я автор.)
обратите внимание, что для этого требуется jQuery в качестве зависимости.
например:
<form id="originalForm">
First name: <input type="text" name="firstname"><br>
Last name: <input type="text" name="lastname">
<button type="submit">store into local storage</button>
</form>
<button id="renderForm">render from data again </button>
<form id="copyForm"><form>
может обращаться так:
// Maintain client's preferences in localStorage:
var settingsStore = PersistentObject("mySettings");
// Initialize form elements with currently stored data
settingsStore.writeToForm("#originalForm");
// Allow users to edit and save settings:
$("#settingsForm").submit(function(e){
// ... maybe some validations here ...
settingsStore.readFromForm(this);
e.preventDefault();
});
// Write data to another form:
$("#renderForm").submit(function(e){
settingsStore.writeToForm("#copyForm");
});