jQuery,知问前端--cookie 插件

学习要点:

  1.使用 cookie 插件

  2.注册直接登录

Cookie 是网站用来在客户端保存识别用户的一种小文件。一般来用库可以保存用户登 录信息、购物数据信息等一系列微小信息。

一.使用 cookie 插件

官方网站:http://plugins.jquery.com/cookie/

cookie()生成cookie文件,3个参数,参数1cookie名称,参数2cookie值,参数3是一个对象设置cookie

生成一个 cookie:

$.cookie('123','456');

设置 cookie

expires : 7, 过期时间,7 天后,设置过期时间

path : '/', 设置路径,上一层,设置路径

domain : 'www.ycku.com', 设置域名,设置域名后,cookie在指定域名下有效

secure : true, 默认为 false,需要使用安全协议 https,设置true后只有在https协议下有效

    $.cookie('123','456',{
expires:10, //设置cookie有效期为10天
path : '/' //设置cookie路径
// domain : 'www.jxiou.com', //设置cookie域名,只有在当前域名下有效
// secure : true //设置cookie为https协议下有效
});

cookie属性raw,关闭编码/解码,默认为 false默认是自动编码和解码的

    $.cookie('123','456',{
expires:10, //设置cookie有效期为10天
path : '/' //设置cookie路径
// domain : 'www.jxiou.com', //设置cookie域名,只有在当前域名下有效
// secure : true //设置cookie为https协议下有效
});
$.cookie.raw = true; //关闭编码/解码,关闭后cookie内容将以明码方式存在,建议不要关闭

读取 cookie 数据,参数为要读取的cookie名称

    $.cookie('123','456',{
expires:10, //设置cookie有效期为10天
path : '/' //设置cookie路径
// domain : 'www.jxiou.com', //设置cookie域名,只有在当前域名下有效
// secure : true //设置cookie为https协议下有效
});
alert($.cookie('123')); //读取 cookie 数据,参数为要读取的cookie名称

读取所有 cookie 数据,不传参数

    $.cookie('adc','456',{
expires:10, //设置cookie有效期为10天
path : '/' //设置cookie路径
// domain : 'www.jxiou.com', //设置cookie域名,只有在当前域名下有效
// secure : true //设置cookie为https协议下有效
});
alert($.cookie().adc); //读取所有 cookie 数据,不传参数

注意:读取所有的 cookie 是以对象键值对存放的,所以,也可以$.cookie().user 获取。

removeCookie()删除cookie,参数是要删除的cookie名称

    $.cookie('adc','456',{
expires:10, //设置cookie有效期为10天
path : '/' //设置cookie路径
// domain : 'www.jxiou.com', //设置cookie域名,只有在当前域名下有效
// secure : true //设置cookie为https协议下有效
});
$.removeCookie('adc', {
path: '/'
}); //removeCookie()删除cookie,参数是要删除的cookie名称

注册成功后生成cookie,显示登录状态

html

<div id="header">
<div class="header_main">
<h1>知问</h1>
<div class="header_search">
<input type="text" name="search" class="search"/>
</div>
<div class="header_button">
<button id="search_button">提交</button>
</div>
<div class="header_member">
<a href="javascript:void(0)" id="reg_a">注册</a>
<a href="javascript:void(0)" id="member">用户</a>
|
<a href="javascript:void(0)" id="login_a">登录</a>
<a href="javascript:void(0)" id="logout">退出</a>
</div>
</div>
</div> <form id="reg" method="post" action="yzh.php" title="会员注册">
<ol class="reg_error"></ol>
<p>
<label for="user">帐号:</label>
<input type="text" name="user" class="text" id="user"/>
<span class="star">*</span>
</p>
<p>
<label for="pass">密码:</label>
<input type="text" name="pass" class="text" id="pass"/>
<span class="star">*</span>
</p>
<p>
<label for="email">邮箱:</label>
<input type="text" name="email" class="text" id="email"/>
<span class="star">*</span>
</p>
<p>
<label>性别:</label>
<input type="radio" name="sex" id="male" checked="checked" value="男"><label for="male">男</label></input>
<input type="radio" name="sex" id="female" value="女"><label for="female">女</label></input>
</p>
<p>
<label for="date">生日:</label>
<input type="text" name="date" readonly="readonly" class="text" id="date"/>
</p>
</form>
<div id="loading">数据交互中...</div>

前台js

//判断cookie
var ifcookie = function () {
if ($.cookie('user')) { //判断cookie存在
$('#member, #logout').show(); //显示用户和退出
$('#reg_a, #login_a').hide(); //隐藏注册和登录
$('#member').html($.cookie('user')); //改名用户为用户名称
} else {
$('#member, #logout').hide(); //隐藏用户和退出
$('#reg_a, #login_a').show(); //显示注册和登录
}
};
ifcookie(); //执行cookie判断 //点击退出
$('#logout').click(function () {
$.removeCookie('user'); //删除cookie
ifcookie(); //执行cookie判断
}); //创建交互数据提示框
$('#loading').dialog({ //数据交互提示框,执行对话框方法
autoOpen : false, //创建对话框关闭
modal : true, //遮罩
closeOnEscape : false, //阻止点击键盘ESC键关闭dialog
resizable : false, //阻止调整对话框大小
draggable : false, //阻止对话框可以移动
width : 230,
height : 50
}).parent().parent().find('.ui-widget-header').hide(); //找到对话框标题隐藏
//注册框
$('#reg_a').on('click',function () { //将注册框,执行对话框方法
$('#reg').dialog({
autoOpen : true,
modal : true,
resizable : false,
width : 320,
height : 360,
buttons : { //注册对话框创建按钮
'提交' : function () {
$(this).submit(); //执行提交方法
}
},
closeText : '关闭对话框',
beforeClose:function (e,ui) { //将要关闭,执行回调函数
$('#reg').resetForm(); //Ajax 表单插件方法,重置表单
$('#reg span.star').html('*').removeClass('succ'); //改变提示信息
$('#reg ol').html(''); //将提示信息去掉
$('#reg input').css('border', '1px solid #ccc'); //改变出错边框颜色
}
}).buttonset().validate({ //验证表单
submitHandler: function (form) { //全部验证成功准备提交
$(form).ajaxSubmit({ //Ajax 表单插件方法,提交
url: 'add.php', //提交页面
type: 'POST', //提交方式
beforeSubmit: function (formData, jqForm, options) { //提交时
$('#loading').dialog('open'); //打开交互对话框
$('#reg').dialog('widget').find('button').eq(1).button('disable'); //将注册对话框的提交按钮禁止
$('#loading').css('background', 'url(img/743.gif) no-repeat 20px center').html('数据交互中...'); //载入交互对话框图片
},
success: function (responseText, statusText) { //提交后
if (responseText) { //判断提交成功返回值
$('#reg').dialog('widget').find('button').eq(1).button('enable'); //取消阻止注册提交按钮
$('#loading').css('background', 'url(img/chg.png) no-repeat 20px center').html('数据新增成功...'); //载入提交成功图片
$.cookie('user', $('#user').val()); //注册成功创建,cookie
setTimeout(function () { //睡眠1秒
ifcookie(); //执行cookie判断
$('#loading').dialog('close'); //关闭交互提示对话框
$('#reg').dialog('close'); //关闭注册对话框
$('#reg').resetForm(); //重置表单
$('#reg span.star').html('*').removeClass('succ'); //改变验证提示信息
}, 1000);
}
}
});
},
highlight: function (element, errorClass) { //如果出错,错误框边框改变颜色
$(element).css('border', '1px solid #630');
$(element).parent().find('span').html('*').removeClass('succ'); //改变验证提示信息
},
unhighlight: function (element, errorClass) { //如果正确取消边框改变颜色
$(element).css('border', '1px solid #ccc');
$(element).parent().find('span').html('&nbsp;').addClass('succ'); //显示正确图片
},
showErrors: function (errorMap, errorList) { //获取出错句柄
var errors = this.numberOfInvalids();
if (errors > 0) { //判断出错句柄个数来改变对话框的高度
$('#reg').dialog('option', 'height', errors * 20 + 360); //注册对话框自动根据错误数量来改变高度
} else {
$('#reg').dialog('option', 'height', 360); //没有错误还原高度
}
this.defaultShowErrors();
},
errorLabelContainer: 'ol.reg_error', //有错误时,将所有表单错误信息统一放到class为ol.reg_error的元素里
wrapper: 'li', //将每个错误信息放入一个li标签
rules : { //表单验证规则
user : { //验证用户名
required:true, //不能为空
rangelength:[2,10] //不得小于2位大于10位
},
pass:{ //验证密码
required:true, //不能为空
rangelength:[6,20] //不得小于6位大于20位
},
email:{ //验证邮箱
required:true, //不能为空
email:true //必须是邮箱格式
}
},
messages : { //错误提示
user : {
required:'用户名不能为空!',
rangelength:jQuery.format('用户名不得小于{0}位,大于{1}位')
},
pass:{
required:'密码不能为空',
rangelength:jQuery.format('密码不得小于{0}位,大于{1}位')
},
email:{
required:'邮箱不能为空',
email:'请输入正确的邮箱格式'
}
}
}); //邮箱执行自动补全
$('#email').autocomplete({
autoFocus: true,
delay: 0,
source: function (request, response) {
var hosts = ['qq.com', '163.com', '263.com', 'gmail.com', 'hotmail.com'], //起始
term = request.term, //获取输入值
ix = term.indexOf('@'), //@
name = term, //用户名
host = '', //域名
result = []; //结果
//结果第一条是自己输入
result.push(term);
if (ix > -1) { //如果有@的时候
name = term.slice(0, ix); //得到用户名
host = term.slice(ix + 1); //得到域名
}
if (name) {
//得到找到的域名
var findedHosts = (host ? $.grep(hosts, function (value, index) {
return value.indexOf(host) > -1;
}) : hosts),
//最终列表的邮箱
findedResults = $.map(findedHosts, function (value, index) {
return name + '@' + value;
});
//增加一个自我输入
result = result.concat(findedResults);
}
response(result);
}
}); //将生日执行日历ui
$('#date').datepicker({
showOtherMonths:true,
changeYear:true,
changeMonth:true,
yearSuffix:''
});
});

第一百八十七节,jQuery,知问前端--cookie 插件,注册成功后生成cookie,显示登录状态的更多相关文章

  1. 第一百八十三节,jQuery-UI,知问前端--验证插件

    jQuery-UI,知问前端--验证插件 学习要点: 1.使用 validate.js 插件 2.默认验证规则 3.validate()方法和选项 4.validate.js 其他功能 验证插件(va ...

  2. 第一百二十七节,JavaScript,JSON数据类型转换,数据转换成字符串,字符串转换成数据

    第一百二十七节,JavaScript,JSON数据类型转换,数据转换成字符串,字符串转换成数据 学习要点: 1.JSON语法 2.解析和序列化 前两章我们探讨了XML的结构化数据,但开发人员还是觉得这 ...

  3. 第三百八十七节,Django+Xadmin打造上线标准的在线教育平台—网站上传资源的配置与显示

    第三百八十七节,Django+Xadmin打造上线标准的在线教育平台—网站上传资源的配置与显示 首先了解一下static静态文件与上传资源的区别,static静态文件里面一般防止的我们网站样式的文件, ...

  4. 第一百七十七节,jQuery,知问前端--概述及 jQuery UI

    jQuery,知问前端--概述及 jQuery UI 学习要点: 1.项目介绍 2.jQuery UI 3.UI 主题 一.项目介绍 我们重点仿照“知乎”的架构模式来搭建界面和布局,以及大部分前端功能 ...

  5. 第一百八十一节,jQuery-UI,知问前端--自动补全 UI--邮箱自动补全

    jQuery-UI,知问前端--自动补全 UI--邮箱自动补全 学习要点: 1.调用 autocomplete()方法 2.修改 autocomplete()样式 3.autocomplete()方法 ...

  6. 第一百八十节,jQuery-UI,知问前端--消息提示 UI

    jQuery-UI,知问前端--消息提示 UI 学习要点: 1.HTML 部分 2.CSS 部分 3.jQuery 部分 通过前面已学的 jQuery UI 部件,我们来创建一个注册表单. html ...

  7. 第一百九十七节,jQuery EasyUI,LinkButton(按钮)组件

    jQuery EasyUI,LinkButton(按钮)组件 学习要点: 1.加载方式 2.属性列表 3.方法列表 本节课重点了解 EasyUI 中 LinkButton(按钮)组件的使用方法,这个组 ...

  8. 第一百六十七节,jQuery,DOM 节点操作,DOM 节点模型操作

    jQuery,DOM 节点操作,DOM 节点模型操作 学习要点: 1.创建节点 2.插入节点 3.包裹节点 4.节点操作 DOM 中有一个非常重要的功能,就是节点模型,也就是 DOM 中的“M”.页面 ...

  9. 第二百八十七节,MySQL数据库-条件语句、循环语句、动态执行SQL语句

    MySQL数据库-条件语句.循环语句.动态执行SQL语句 1.if条件语句 delimiter \\ CREATE PROCEDURE proc_if () BEGIN ; THEN ; ELSEIF ...

随机推荐

  1. Jmeter调用Webapi介绍

    一.介绍     JMeter主要用于压力测试,使用Java编写,由Apache基金会管理     官方网站:http://jmeter.apache.org/index.html     下载地址: ...

  2. 一些常用JS 函数总结

    搜索url参数 /** * 搜索url参数 * @param {String} name 参数键名 * @return {String} 对应值 */ function getQueryVariabl ...

  3. macOS中Vim基本配置,颜色主题/语法/indent设置

    macOS中Vim基本配置 Vim的初始化配置 .vimrc 存放位置 macOS 环境下 vim 的初始化配置文件为 .vimrc , 通常有两个(系统版本和用户版本),一个位于 /usr/shar ...

  4. 13:在O(1)时间删除单链表节点

    题目:给定单项链表的头指针和一个节点指针.定义一个函数在O(1)时间删除该节点. 解析: 删除单向链表中的一个节点,常规做法是必须找到待删除节点的前一个节点才干实现.而这样做的时间复杂度是O(n).无 ...

  5. ZT:有些人,活了一辈子,其实不过是认真过了一天,其余时间都在重复这一天而已

    出处:http://news.163.com/17/1011/19/D0G7UEDS0001982T.html 有些人,活了一辈子,其实不过是认真过了一天,其余时间都在重复这一天而已,也有人每天不重样 ...

  6. 可伸缩Web架构与分布式系统(1)

    开源软件近年来已变为构建一些大型网站的基础组件.并且伴随着网站的成长,围绕着它们架构的最佳实践和指导准则已经显露.这篇文章旨在涉及一些在设计大型网站时需要考虑的关键问题和一些为达到这些目标所使用的组件 ...

  7. Django—— 缓存框架

    译者注:1.无用的,吹嘘的说辞不翻译:2.意译,很多地方不准确. 动态网站最为重要的一点就是好,网页是动态的.每一次用户请求页面,网站就要进行各种计算——从数据库查询,到render模板,到各种逻辑运 ...

  8. Vue 状态管理 Vuex

    1.概述 Vuex作为插件,管理和维护整个项目的组件状态. 2.安装vuex cnpm i --save vuex 3.vuex使用 github地址:https://github.com/MengF ...

  9. PHP怎么实现站点保存快捷方式

    PHP怎么实现站点保存快捷方式 <?php $Shortcut = "[InternetShortcut] URL=http://blog.csdn.net/phpfenghuo/ I ...

  10. Oracle 数字操作。数字函数。mod(),trunc(),round(),ceil(),floor的使用

    1,取整函数(ceil 向上取整,floor 向下取整) 第一种方式: ) from dual -- 取整 trunc (1.9) = 1 第二种方式 select ceil(66.6) N1,flo ...