input + cookie
Помогите написать скрипт, который будет сохранять введенные значения input при перезагрузке страницы
Есть блок ввода количества товара:
<button onClick="if (document.getElementById('count_<?=$id?>').value > 1) {document.getElementById('count_<?=$id?>').value -= 1;} check(); return false;">
<span>-</span>
</button>
<input type="text" onClick="check();" name="count1" id="count_<?=$this->id?>" value='1' onChange="if (this.value <= 0) {this.value = '1';}">
<button onClick="document.getElementById('count_<?=$id?>').value = Math.round(document.getElementById('count_<?=$id?>').value)+1; check(); return false;">
<span>+</span></button>
здесь пример $id содержит массив (1,2,3,4,5 и т.д.) Мне необходимо, чтобы при изменении значения input > 1, его значение записывалось в cookie, при значении 1 - cookie чистилось бы Пробую написать так:
<script type="text/javascript">
$(document).ready(function() {
var inputChange = $('input[name="count1"]');
inputChange.change(function (e){
var inputValue = $(e.target).val(),
elemIdInput = $(e.currentTarget).attr("id"); // переменная с сохранением id в input выбранном
//alert(inputValue);
$.cookie('valueInput' + elemIdInput, inputValue, { expires: 1}); //сохраняем наши значения в куки
});
for(var i = 0; i < inputChange.length; i++){
inputChange.eq(i).val($.cookie('valueInput' + inputChange.eq(i).attr('id')));
};
});
</script>
но работает не так как хотелось бы, во первых убирает значение из инпута - ставит пустое, во вторых не сохраняет значение инпута если кликнуть + или - ,в третьих - как написать проверку на удаление? |
Дописал проверку, если значение input 1 то удалять куки:
$(document).ready(function() {
var inputChange = $('input[name="count1"]');
inputChange.change(function (e){
var inputValue = $(e.target).val(),
elemIdInput = $(e.currentTarget).attr("id"); // переменная с сохранением id в input выбранном
//alert(inputValue);
$.cookie('valueInput' + elemIdInput, inputValue, { expires: 1}); //сохраняем наши значения в куки
if(inputValue = 1){
$.cookie('valueInput' + elemIdInput, null);
}
});
for(var i = 0; i < inputChange.length; i++){
inputChange.eq(i).val($.cookie('valueInput' + inputChange.eq(i).attr('id')));
};
});
Как обновлять переменную по клику на + и -, и как выводить значение input если нет cookie? |
<script type="text/javascript">
$(document).ready(function() {
var inputChange = $('input[name="count1"]'),
minus = $('button.minus'),
plus = $('button.plus');
inputChange.change(function (e){
var inputValue = $(e.target).val(),
elemIdInput = $(e.currentTarget).attr("id");
if(inputValue <= 0){
inputValue = 1;
$(e.target).attr('value', inputValue);
}
$.cookie('valueInput' + elemIdInput, inputValue, { expires: 1});
});
minus.click(function (e){
var inputValue = $('input').val()-1,
elemIdInput = $(e.currentTarget).attr("id");
if(inputValue <= 0){
inputValue = 1;
$(e.target).attr('value', inputValue);
}
$.cookie('valueInput' + elemIdInput, inputValue, { expires: 1});
});
for(var i = 0; i < inputChange.length; i++){
if($.cookie('valueInput' + inputChange.eq(i).attr('id')) == null){
inputChange.eq(i).val('1');
}
else{
inputChange.eq(i).val($.cookie('valueInput' + inputChange.eq(i).attr('id')));
}
};
});
</script>
на onChange работает все ок, а как сделать по onClick чтобы еще работало, щас при клике на "-" все скидывает на 1 и не записывает в куки |
Как вариант. При чем если странницы вывода инпутов разные придется рассмотреть механизм сохранения для разных страниц значений http://fiddle.jshell.net/vlasenkofedor/Y9WMp/
|
Poznakomlus,
а если конкретно для моего варианта, можно как то? |
помогите по этому примеру сделать так же только для:
<input type="text" name="count1" id="count_1" value="1"/> <input type="text" name="count1" id="count_3" value="1"/> <input type="text" name="count1" id="count_3" value="1"/> |
а чем тебя не устраиваеет. Вот через куки
http://fiddle.jshell.net/vlasenkofedor/Y9WMp/2/ |
| Часовой пояс GMT +3, время: 19:57. |