2012-11-16 88 views
2

当页面重新加载时,我需要保持选定值的持久性。我使用带有jQuery的多选插件作为下拉选择菜单。这可能吗?我对此一无所知,所以如果我听起来哑巴,对不起。 :)保持选择持久

<select multiple="multiple" style="width: 135px;" name="platform[]" id="platform"> 
<option value="platform_1">Platform 1</option> 
<option value="platform_2">Platform 2</option> 
</select> 

<select id="2" multiple="multiple" style="width: 165px;" name="features[]" id="features"> 
<optgroup label="Group One"> 
<option value="feature_1">Feature 1</option> 
<option value="feature_2">Feature 2</option> 
<option value="feature_3">Feature 3</option> 
<option value="feature_4">Feature 4</option> 
<option value="feature_5">Feature 5</option> 
<optgroup label="Group Two"> 
<option value="feature_6">Feature 6</option> 
<option value="feature_7">Feature 7</option> 
<option value="feature_8">Feature 8</option> 
</select> 
+3

饼干或本地存储,或者用饼干作为后备最好的本地存储。 – adeneo

+2

使用Cookie或LocalStorage如果您使用HTML5 –

+1

要保持页面重新加载时的选择持久性,您必须将数据存储在cookie中或找到其他一些存储方法。 –

回答

3

这里是你可能需要什么例子:

$("#platform").val(getCookie("platform")); 
$("#2").val(getCookie("feature")); 

$("#platform option").click(function(){ 
    document.cookie = "platform="+$(this).val(); 
}); 
$("#2 option").click(function(){ 
    document.cookie = "feature="+$(this).val(); 
}); 

function getCookie(c_name) { 
var i,x,y,ARRcookies=document.cookie.split(";"); 
for (i=0;i<ARRcookies.length;i++) { 
x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("=")); 
y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1); 
    x=x.replace(/^\s+|\s+$/g,""); 
    if (x==c_name) 
    { 
    return unescape(y); 
    } 
    } 
} 

jsfiddle

+0

谢谢,但我不明白这是做什么。 – user1806735

+0

当您点击