有没有办法让所选的选项在刷新时成为默认值?

时间:2014-02-26 05:40:49

标签: javascript jquery html

我今天遇到这个问题,我希望我选择的选项是刷新页面时的默认值。例如,我有这个:

<select id="options">
<option value="0">Apple</option> 
<option value="1">Orange</option> 
<option value="2">Mango</option></select>

我的用户界面上的默认设置是Apple,所以我想要的是当我点击橙色选项时,它会在刷新页面时成为默认值。有没有办法做到这一点?感谢

3 个答案:

答案 0 :(得分:4)

我认为本地存储可以为您提供帮助。 例如:

<select id="options">
<option value="0">Apple</option> 
<option value="1">Orange</option> 
<option value="2">Mango</option></select>

的Javascript

$("#options").on("change", function(){
    var val = $(this).val();
    // save to local
    if(window.localStorage){
        window.localStorage.setItem("#options-val", val);
    }
});

if(window.localStorage){
    var item = window.localStorage.getItem("#options-val");
    if(item) $("#options").val(item);
}

请参阅demo

所有js代码必须在$(document).ready()

在demo上运行代码后,尝试重新加载页面,您将看到结果!

答案 1 :(得分:0)

使用onchange设置会话cookie,然后在页面加载时设置option.selected

<select id="options" onChange="document.cookie='fruit='+this.value;">
<option value="0">Apple</option> 
<option value="1">Orange</option> 
<option value="2">Mango</option></select>

<script type="text/javascript">
<!--
function getCookie(cname)
{
/* http://www.w3schools.com/js/js_cookies.asp */
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i=0; i<ca.length; i++)
  {
  // var c = ca[i].trim(); // trim not supported on IE8
  var c = ca[i].replace(/^\s+|\s+$/gm,'');
  if (c.indexOf(name)==0) return c.substring(name.length,c.length);
  }
return "";
} 
window.onload = function() {
    var v = getCookie('fruit');
    if (v) document.getElementById('options').options[v].selected = true;
}
//-->
</script>

答案 2 :(得分:-2)

为您想要的选项设置selected =“selected”。

<option selected="selected">
  default
</option>