背景:在jQuery项目中,利用cookie存储用户的登陆信息
在网上看到很多关于介绍jquery.cookies的使用,但是我在实际的项目中总是行不通,具体的报错,在IE中直接进入断点,在Firefox中提示$.cookie is not a function。
我在使用的时候,输入$.的时候提示的是cookies而不是cookie,我就在想是不是cookie插件升级了,导致某些方法变化了,后来实际查看cookies的源文件,发现确实变化了。
项目展示:
界面包括两个输入框,一个记住密码的复选框,一个登陆按钮。业务规则:用户登陆成功,则记住用户的登录名,如果用户选择了记住密码,则记住用户的密码,在用户下次打开界面的时候,默认填上信息。
(1)记住信息
if ($('#lcheckbox').is(":checked")) {
$.cookies.set('username', $('#LNum').val(), { path: '/', expires: 10 });
$.cookies.set('pwd', $('#LpassWord').val(), { path: '/', expires: 10 });
} else {
$.cookies.set('username', $('#LNum').val(), { path: '/', expires: 10 });
$.cookies.del('pwd');
}
(2)取出信息
if ($.cookies.get('username') != '' && $.cookies.get('username') != null) {
$('#LNum').val($.cookies.get('username'));
}
if ($.cookies.get('pwd') != '' && $.cookies.get('pwd') != null) {
$('#lcheckbox').attr("checked", "true");
$('#LpassWord').val($.cookies.get('pwd'));
}
取出信息的时候之所以采用两次判断,因为可能保存的账号而没有保存密码。
这样的两步操作,便能记住用户的登陆信息了。
附(1): jquery.cookies.2.2.0的下载链接
附(2):在相关的网页中,记得引用:<script type="text/javascript" src="js/jquery.cookies.2.2.0.js"></script>
<script type="text/javascript" src="js/jquery.cookies.2.2.0.min.js"></script>
附(3)在jquery.cookies.2.2.0的源码中的顶部可以看到这样的一些代码:
var resolveOptions, assembleOptionsString, parseCookies, constructor, defaultOptions = {
expiresAt: 10,
path: '/',
domain: null,
secure: false
};
与以前的版本一样,这是设置cookie的默认选项的一些东西,包括超时,路径(路径建议就使用/,否则有可能出现这个界面保存了,别的界面访问不了的情况),域,安全。安全一般就给FALSE,如果你给某个对象设置为了true,这个对象是不会保存到cookie中的。
$.cookies.set('username', $('#LNum').val(), { path: '/', expires: 10 });
选项的设置,跟以前版本是类似的