在多个页面中保留cookie表单值

时间:2015-01-27 10:50:33

标签: javascript jquery cookies

设置:我有一个表单可以捕获$thisSearch.val(),将其保存为cookie,然后推送到数组。表单是从标题中的菜单项触发的叠加层,因此可以显示在站点中的任何页面上。

问题是它似乎只是在输入的页面上保存/保留输入值。我正在尝试将所有这些值收集到一个list.items()数组中,该数组可以在网站的任何位置输入。

我已经尝试自己将字符串推送到数组而不是add函数,并将dom移动到搜索表单中。

当我知道要具体询问的内容时,我可以更新问题。我应该注意的任何指针/概念都很棒。

var cookieList = function(cookieName) {
    var cookie = $.cookie(cookieName);
    var items = cookie ? cookie.split(/,/) : new Array();

    return {
        "add": function(val) {
            items.push(val);
            $.cookie(cookieName, items.join(','));
        },
        "items": function() {
            return items;
        }
    }
} 

var list = new cookieList("PreviousSearches");

$searchSubmit.on('click', function() {
    var $thisSearch = $(this).prev().find($searchInput);
    if( $thisSearch.val() == '' ) {
        alert('Please enter a search term');
        console.log( list );
        return false;            

    } else {
        searchTerm = $thisSearch.val() 
        list.add( searchTerm );
    }
});

var searchTerms = list.items();
var total = searchTermsFiltered;
var searchTermsFiltered = searchTerms.filter(Boolean).slice( - 5 ).reverse();
var searchtermClean = searchTermsFiltered.join();

$.each($(searchTermsFiltered), function(i,v){
    if (!window.location.origin)
    window.location.origin = window.location.protocol+"//"+window.location.host;
    var lastURLRaw = window.location.origin+'/bch/?s='+v;
    var lastURL = lastURLRaw.replace(/ /g, '+');
    listItem = '<li><a href="'+lastURL+'">'+v+'</a></li>';
    $('.tags, .search-tags').append(listItem );
});

1 个答案:

答案 0 :(得分:0)

我在下面的顶部答案中找到了来自jquerys $ .cookie的路径说明符。

我的代码中的

$.cookie(cookieName, items.join(',') ,{路径:'/'});

why are my jquery cookies not available across multiple pages?