Javascript 使选择选项保持选中状态。饼干?

Javascript 使选择选项保持选中状态。饼干?,javascript,cookies,Javascript,Cookies,我有一个非常简单的选择选项,我希望它能在点击时触发刷新和特定操作。但在我开始之前,我想知道如何在任何刷新或操作后保持它处于选中状态 <select name="countries" id="countries" style="width:180px;"> <option value='us'>United States</option> <option value='gb'>United Kingdom</option> </se

我有一个非常简单的选择选项,我希望它能在点击时触发刷新和特定操作。但在我开始之前,我想知道如何在任何刷新或操作后保持它处于选中状态

<select name="countries" id="countries" style="width:180px;">
<option value='us'>United States</option>
<option value='gb'>United Kingdom</option>
</select>

美国
大不列颠联合王国

任何想法,我已经研究过cookies,但希望能得到一些帮助。

您必须包括jquery.cookies.js


功能更改动作(选定值)
{
$.removeCookie(“测试”);
$.cookie(“测试”,选定的值);
//通过放置id使选择框处于选中状态
//现在连这条线都不需要了
//$(“#”+选定的_值).attr('selected',true);
//提供需要重定向的URL
window.location.href='';
}
下面是html代码

//In php check whether cookie is working
   <?php
   echo $_cookie('test');
   ?>
    <select name="countries" id="countries" style="width:180px;" onchange="return change_action(this.value);">
        <option value='us' id="us" <?php if($_cookie('test') == 'us') { ?> ?>selected='selected'<?php } ?>>United States</option>
        <option value='gb' id="gb" <?php if($_cookie('test') == 'gb') { ?> ?>selected='selected'<?php } ?>>United Kingdom</option>
        </select>
//在php中检查cookie是否工作
精选的美国
精选联合王国

检查这个,在Jquery中完成,有一些你可能不需要的代码,这是为一些其他问题完成的,只是为了你的选择而修改的

  $(document).ready(function(e){
     var name = "Country=";
     var ca = document.cookie.split(';');
     for(var i=0; i<ca.length; i++)
  {
  var c = ca[i].trim();
  if (c.indexOf(name)==0) $('#countries').val(c.substring(name.length,c.length));
  }
});

$('#countries').change(function(e)
{
    var cookieVal = "Country="+$(this).val();
document.cookie = cookieVal ;

});
$(文档).ready(函数(e){
var name=“Country=”;
var ca=document.cookie.split(“;”);
对于(变量i=0;i

美国
大不列颠联合王国
函数setCookie(cname、cvalue、exdays)
{
var d=新日期();
d、 设置时间(d.getTime()+(exdays*24*60*60*1000));
var expires=“expires=“+d.togmString();
document.cookie=cname+“=”+cvalue+”;“+expires;
}
函数getCookie(cname)
{
变量名称=cname+“=”;
var ca=document.cookie.split(“;”);

对于(var i=0;我认为我尝试过的所有这些cookie选项的主要问题是,我没有正确地包含代码,我已经在这个链接上上传了一个代码示例-…这设置正确吗,因为它仍然不适用于我。@user3272400并通过在javascript中发出警报进行检查。我已经这样做了,但页面没有返回任何东西,你知道这意味着什么吗?那么这是一个php错误。使用错误报告(E_ALL)找到错误并修复它。嗨,很抱歉,我还不擅长编程,真的不知道怎么做。我相信Cookie测试回音就是问题所在。一旦删除,选择就会再次显示。那么这个链接上的选择器不应该工作吗?JS代码中有输入错误:
lang
被传递到
change\u语言中
,尽管函数使用
当前\u标志
。。。
  $(document).ready(function(e){
     var name = "Country=";
     var ca = document.cookie.split(';');
     for(var i=0; i<ca.length; i++)
  {
  var c = ca[i].trim();
  if (c.indexOf(name)==0) $('#countries').val(c.substring(name.length,c.length));
  }
});

$('#countries').change(function(e)
{
    var cookieVal = "Country="+$(this).val();
document.cookie = cookieVal ;

});
<select name="countries" id="countries" style="width:180px;" onchange="change_language(this.value)">
<option value='us' id='us'>United States</option>
<option value='gb' id='gb'>United Kingdom</option>
</select>

<script>
function setCookie(cname,cvalue,exdays)
{
var d = new Date();
d.setTime(d.getTime()+(exdays*24*60*60*1000));
var expires = "expires="+d.toGMTString();
document.cookie = cname+"="+cvalue+"; "+expires;
}




function getCookie(cname)
{
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i=0; i<ca.length; i++) 
  {
  var c = ca[i].trim();
  if (c.indexOf(name)==0) return c.substring(name.length,c.length);
  }
return "";
}


function change_language(lang)
{
setCookie("flag_option_dropdown",current_flag,30);
var flag_current_option_dropdown=getCookie("flag_option_dropdown");
document.getElementById(flag_current_option_dropdown).setAttribute("selected","selected");
}

change_language("gb"); //by default




<script>