JavaScript操作cookie的一个小小失误

最近在做一个基于SSH的网站。其中有一个登录模块,需要实现记住密码的功能。

就是在输入用户名的时候,如果该用户的密码被记住过,则在输完用户名后(当焦点离开时自动填充密码)




于是马上想到了Cookie技术。

由于需要在页面中显示指定用户保存的密码,因此需要和JavaScript打交道。

查阅了相关资料,发现了JavaScript也支持Cookie。

核心内容是document.cookie

因为cookie存储的是许多键值对(key=value),每个键值对由一个分号隔开。

于是通过split(";")函数将cookie对拆分成键值对数组。再利用split("=")函数将键值对拆分成key和value,再进行业务逻辑。

本来一切都很顺利的。结果执行到这一步时,被堵了很久。

这里userName为用户输入的用户名

elements[0]为cookie中所有键值对的key值。

elements[1]为cookie中所有键值对的value值。

这里的业务逻辑为:

		if(userName == elements[0]) {
			document.getElementsById("password").value = elements[1];	
			break;
		}

后面测试发现该if中的表达式始终为false。

于是我利用alert()函数打印它们的值。

alert(userName + "," + elements[0]);


这里的输出是tester,tester。

很迷惑,难道是电脑傻叉掉了?明明是相等的啊。难道要用 三个等于号(===),或者要用什么方法(例如equals()),结果还是不行。

后面将值打印到html里面(这样就可以用鼠标拖蓝了,在alert框是做不到的)。发现分号后面居然还有一个空格!!!

原来cookie的格式是这样的(为了区分清楚,用下划线替代空格)   user=benson;_age=18;_date=2012;_school=hvd

所以以后遇到这种问题,即明明看起来应该是一样的,结果判断始终为false,这个时候,就要考虑是否是因为有多余的空格原因引起的,毕竟空格是隐形的杀手!




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值