Дано: Страница корзины товаров, в ней форма "Имя" "Телефон" "Email"
Задача: Сохранять содержимое формы даже если не была нажата кнопка оформления заказа. Сохранять только те поля, где заполнен хоть один символ.
Пример: Человек добавил товар в корзину и перешел в нее, заполнил имя и телефон и закрыл окно браузера. Нужно, чтобы имя и телефон где-то сохранились.** *Где - неважно пока - как пример возьмем .txt файл в корне.***
txt, видимо, плохой пример. Давайте, конкретизируем: Пользователь кликает по полю input, вводит туда >0 символов, далее кликает куда либо вне этого поля, в этот момент символы которые были в поле должны сохраняться в любое доступное мне место.
Update:
Коллеги, у меня вопрос не как пользователю сохранить куки с введенной информацией, а как мне, как админу сайта получить содержимое заполненных полей, если форма не была отправлена нажатием кнопки "Оформить заказ". Или принудительно данные копировать из этой формы в какую-то скрытую и отправлять ее в какой-то обработчик, либо фиксировать изменения текста в полях как-то.
Можно сохранить значения в cookie на 1 неделю, и при последующих загрузках страницы снова заполнять поля прошлыми значениями
HTML
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
<input class='catching_input' name='Name' id='name' placeholder='Имя'>
<input class='catching_input'name='Phone' id='phone' placeholder='Телефон'>
<input class='catching_input'name='Email' id='email' placeholder='E-mail'>
</form>
JS
$('.catching_input').on('change',function() {
var input_id = $(this).attr('id');
var input_value = $(this).val();
var d = new Date();
d.setTime(d.getTime()+(7*24*60*60*1000));
document.cookie = input_id + "="+input_value+"; expires="+d.toGMTString()+"; path=/";
});
$( document ).ready(function() {
$('.catching_input').each(function(){
var prev_val = getCookie($(this).attr('id'));
if (prev_val) {
$(this).val(prev_val);
}
})
});
function getCookie(name) {
var matches = document.cookie.match(new RegExp(
"(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
));
return matches ? decodeURIComponent(matches[1]) : undefined;
}
Запустить пример
Можно сохранять данные в localStorage при изменении значений input-ов. А при загрузке страницы, например, подставлять сохранённые значения:
HTML:
<form id="form">
Имя: <input name="name"/>
Телефон: <input name="phone"/>
Email: <input name="email"/>
</form>
JS:
$(function() {
var $formInputs = $("#form input");
$formInputs.each(function() {
this.value = localStorage.getItem($(this).attr("name"));
});
$formInputs.on("change", function() {
localStorage.setItem($(this).attr("name"), this.value);
});
});
Полный пример в JSFiddle
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Как отсортировать такой массив с эелементами списка по значению по алфавиту?
Вопрос возникает на счёт данного утверждения: При помощи call можно легко взять метод одного объекта, в том числе встроенного, и вызвать в контексте...