2012-12-14 42 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的声望,我就会投票赞成,这让我有信心。 –