javascript读取select中option值并存入cookie中

怎么才能实现啊?javascript读取select的option的值存入cookie使得页面刷新也能保持select当前选项比如说有三个选项ABC分别对应的值是123选... 怎么才能实现啊?
javascript读取select的option的值存入cookie
使得页面刷新也能保持select当前选项
比如说有三个选项A B C分别对应的值是1 2 3 选择 B之后即使页面刷新也会保持B不变!
展开
 我来答
suxueduwang
2013-06-28 · TA获得超过654个赞
知道小有建树答主
回答量:209
采纳率:33%
帮助的人:239万
展开全部
1、代码如下,对select控件添加onchange方法,改变选项的时候,设置cookie
2、页面初始化的时候,使用 window.onload = function(){} 读取cookie值并且匹配对应的选项
3、附加操作 cookie 读取的,如果需要删除 cookie 的,可以加我672986035
4、纯 js 只能自己写 for 来判断是否选中了,也可以使用 jquery,不过jquery要引用jquery.js,可能效率没纯js快,因为要加载jquery,需要用jquery的,也可以加我
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312" />
<title>简洁Tab</title>
</head>
<body>
<select id="selColor" onchange="SaveColor()">
<option value="red">红色</option>
<option value="yellow">黄色</option>
<option value="green">绿色</option>
</select>
</body>
</html>
<script type="text/javascript">
// 获得所有 id=selColor 下的 option
var optionList = document.getElementById("selColor").getElementsByTagName("option");
var optionLength = optionList.length;
// 画面加载的时候,执行方法
window.onload = function () {
// 获得cookie,如果没有,默认为 green 绿色
var value = getCookie("color");
value = value == undefined ? "green" : value;
for (var i = 0; i < optionLength; i++) {
// 匹配 value,如果相同 value 则 selected 选中
if (optionList[i].value == value) {
optionList[i].selected = "selected";
}
}
}
// 改变颜色的时候
function SaveColor() {
// 获得当前选中的值,调用 setCooked 保存到 cookie 中,然后直接退出循环
for (var i = 0; i < optionLength; i++) {
if (optionList[i].selected || optionList[i].selected == "selected") {
setCookie("color", optionList[i].value);
break;
}
}
}
/** --> 设置 cookie 值 --> 获取 cookie 值
* c_name cookie 名称
* value cookie c_name 对应的值
* expiredays 对应存在浏览器的小时数
* path 访问该 cookie 的页面路径,为/ 时默认全可以访问
*/
function setCookie(c_name, value, expiredays) {
var exdate = new Date();
exdate.setTime(exdate.getTime() + expiredays * 3600 * 1000);
document.cookie = c_name + "=" + escape(value) + ((expiredays == null) ? "" : ";expires=" + exdate.toGMTString()) + ";path=/";
}
function getCookie(c_name) {
if (document.cookie.length > 0) {
var c_start = document.cookie.indexOf(c_name + "=");
if (c_start != -1) {
c_start = c_start + c_name.length + 1;
c_end = document.cookie.indexOf(";", c_start);
if (c_end == -1) {
c_end = document.cookie.length;
}
return unescape(document.cookie.substring(c_start, c_end));
}
}
}
</script>
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式