2012-12-14 45 views
2

我正在製作一個登陸頁面,並帶有一個下拉菜單,它將用戶重定向到一個新目錄。下拉菜單記住選擇和重定向用戶

http://steerbox.com/countryselect/

部分工作,現在我需要添加代碼來設置cookie選擇國家時,使下一次用戶訪問登陸頁面就會自動重定向到該國的目錄而無需再次從下拉菜單中選擇。

我發現jquery和javascript將設置下拉選擇的cookie,但我似乎無法得到下拉菜單設置cookie,仍然重定向用戶。以下是我目前用於下拉和重定向的腳本:

<Script language="JavaScript"> 
function goto(form) { var index=form.select.selectedIndex 
if (form.select.options[index].value != "0") { 
location=form.select.options[index].value;}} 
</SCRIPT> 
<FORM NAME="form1"> 
<SELECT NAME="select" ONCHANGE="goto(this.form)" SIZE="1"> 
<OPTION VALUE="">Select Country 
<OPTION VALUE="chile">Chile 
<OPTION VALUE="colombia">Colombia 
<OPTION VALUE="bolivia">Bolivia 
</select> 
</FORM> 

謝謝!院長

+0

如果localsStorage是一種可能性,檢查:http://stackoverflow.com/questions/13873822/restore-dropdown-selection-after-refresh-local-storage – yckart

+0

感謝yckart,localStorage的是偉大的工作爲了這。 –

回答

1

我同意yckart's comment並建議使用localStorage。

支持是相當不錯的(shown here),除非你需要支持IE7或更少,你應該沒問題。

您可以設置和retrive數據是這樣的:

localStorage.varName = 'bling'; 
var myVal = localStorage.varName; 
// or: 
localStorage['a little more flexibility'] = 'bling'; 

要使用此,你可以做到以下幾點:更多

<script type="text/javascript"> 
    if (localStorage && localStorage.country) { 
     location = localStorage.country;  
    } 

    function formChanged(form) { 
     var val = form.options[form.selectedIndex].value; 
     if (val !== 'non-value') { 
      if (localStorage) { 
      localStorage.country = val; 
      } 
      location = val; 
     } 
    } 
</script> 

<FORM NAME="form1"> 
    <select onchange="formChanged(this);" NAME="country" SIZE="1"> 
    <OPTION VALUE="non-value">Select Country 
    <OPTION VALUE="chile">Chile 
    <OPTION VALUE="colombia">Colombia 
    <OPTION VALUE="bolivia">Bolivia 
    </select> 
</FORM> 

http://jsfiddle.net/K4Jkc/

的一種方法,這將是一個小保守的做法是在進行重定向之前將localStorage中存儲的值(如果存在的話)與選擇列表中的選項進行比較,如此jsFiddle所示:

http://jsfiddle.net/K4Jkc/1/

+0

謝謝蒂芙尼,這個作品完美!只要我達到了15的聲望,我就會投票贊成,這讓我有信心。 –