jQuery - сохранение / использование куки - PullRequest
2 голосов
/ 28 августа 2011

В настоящее время я разрабатываю решение для корзины покупок, и у меня есть поле, которое используется для уплаты налогов.

То, что я собираюсь сделать, - это когда пользователь выбирает поле-флажок для налога, тогда оно сохраняется в куки, поэтому, когда они переходят на другие страницы и затем возвращаются в корзину, эти поля проверяются.

Я использую http://plugins.jquery.com/project/Cookie для достижения этой цели.

Я могу создать cookie для флажков, но я изо всех сил пытаюсь затем проверить cookie, и если он был для флажка, то установите флажок как «флажок». Мне также нужно, удаление куки. Когда пользователь снимает флажок, на вызов что-то вроде $ .cookie ("vat_1", null)

Пока у меня есть следующий код:

$(document).ready( function() {
    $('input:checkbox[name="<?php echo $prod; ?>"]').click(function() { 
        var name = $(this).attr("name"); 
        var value = $(this).val(); 
        var date = new Date();
        date.setTime(date.getTime() + (30 * 60 * 1000));

        $.cookie(name, value, { expires: date });//Set the expires time as per your requirement.  
        cookie = $.cookie(name);

        alert(cookie);    
    }) 
});

Вся помощь очень ценится.

Спасибо

1 Ответ

1 голос
/ 28 августа 2011

Для поддержки загрузки ранее отмеченных полей в верхней части функции document.ready() введите следующий код:

$('input:checkbox').each(function(index) {
    cookie = $.cookie($(this).attr("name"));
    if (cookie == 1) {
        $(this).prop('checked', true);
});

Это должно перебрать каждый флажок на странице, найти соответствующий файл cookie и соответственно изменить флажок.

Что касается удаления файлов cookie и их правильной настройки, вам не следует использовать флажок val(). Вместо этого вы должны искать его свойство checked:

$('input:checkbox[name="<?php echo $prod; ?>"]').click(function() { 
    var name = $(this).attr("name"); 
    var value = $(this).prop('checked'); 
    var date = new Date();
    date.setTime(date.getTime() + (30 * 60 * 1000));

    if (value) {
        $.cookie(name, 1, { expires: date });
    } else {
        $.cookie(name, null);
    }

    cookie = $.cookie(name);

    alert(cookie);    
})

Эти две части кода должны быть объединены как таковые

$(document).ready( function() {
    //first code above
    //second code above
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...