【发布时间】:2014-03-13 16:46:16
【问题描述】:
我有一个 jquery 函数,旨在通过为每个值设置一个 cookie 并在页面加载时从中填充字段来使表单值持久化。
看起来像这样:
$(function () {
var bindToCookie = function (identifier, alias) {
var timetoKeep = 7;
var readVal = CookieManager.readCookie(alias);
//console.log(identifier + 'value = ' + readVal);
if (readVal) {
//console.log(identifier + 'value set= ' + readVal);
$(identifier).val(readVal);
}
$(identifier).on('change', function () {
CookieManager.createCookie(alias, $(identifier).val(), timetoKeep);
});
};
bindToCookie('#todatepicker', 'todate');
bindToCookie('#fromdatepicker', 'fromdate');
bindToCookie('#languagepicker', 'language');
bindToCookie('#stationpicker', 'station');
bindToCookie('#programpicker', 'program');
bindToCookie('#sourcepicker', 'sourcepicker');
});
这对我所有的单个值都有效,但字段“#sourcepicker”是一个多选,只有在选择单个值时才能按预期工作。例如,如果我选择值 1,它会在加载时选择 1,但如果我选择 1 和 4,则 cookie 会以 1,4 的值保存,并且在重新加载时不会选择任何内容。我似乎可以使用语法 $('#sourcepicker').val(["1","4"]); 在 jquery 中为其设置多个值。而如果我这样做 $('#sourcepicker').val([1,4]);
如何重新格式化此函数以正确存储和检索 cookie 中的多选值?
【问题讨论】:
标签: javascript jquery cookies