jquery.validate验证表单配合回调提交和h5.storage本地保存笔记
- 表单验证插件我使用:jquery.validate.js 支持中文提示,可扩展性强!教程地址
- 本地保存状态信息使用:h5提供的storage,浏览器支持5m的存储量,存储类型必须是string类型,并且ie8以下不支持,详细介绍看大神的。
- 我使用的库文件v1.15的 密码:3sfb
简单介绍说明一下吧,但对于搬运工可能就会跳过去了,仅以此作为复习。
- jquery.validate.js是通过元素name来获取的,和id没有关系
- jquery.validate.js必须引入messages_zh.js 中文提示包
- storage是永久保存信息,比cookie存储的多,有5m容量,但是多了也卡。并且只能保存字符串类型
实例代码:
//结构:一个原始的表单
<form action="/" id="commentForm">
<label for="username">
用户名:<input type="text" id="username" name="username">
</label>
<label for="password">
密码:<input type="password" id="password" name="password">
</label>
<label for="sub">
<input type="submit" id="sub" name="sub" value="提交">
</label>
</form>
//引入库文件
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
<script src="jquery-validation-1.15.1/dist/jquery.validate.min.js"></script>
<script src="jquery-validation-1.15.1/dist/localization/messages_zh.min.js"></script>
//验证代码 $('#sub').on('click',function () {
$("#commentForm").validate({
onsubmit:true, //在提交时验证
onfocusout:false,//在得到焦点时是否验证
onkeyup :false,//在键盘弹起时验证
rules: {
username: {
required: true,
minlength: 2
},
password: {
required: true,
minlength: 5
}
},
messages: {
username: {
required: "<span style='color: red'>请输入用户名</span>",//只以dom形式展示可以自定义dom
minlength: "<span style='color: red'>用户名必需由两个字母组成</span>"
},
password: {
required: "<span style='color:red'>请输入密码</span>",
minlength: "<span style='color:red'>密码长度不能小于 5 个字母</span>"
}
},
submitHandler: function(form) { //验证成功时调用
//alert('ok');
h5storage($('#username').val(),$('#password').val())//调用storage本地保存
},
invalidHandler: function(form, validator) { //不通过回调
alert('验证不通过');
return false;
},
debug:true
});
})
//为了偷懒,我就把增删查改都写出来了,因为它只接受字符串所以在使用json的时候要对json解析,同理获取的时候也要转化。
//h5本地存储
function h5storage() {
var uid=arguments[0],passw=arguments[1];
if(!window.localStorage){
alert("浏览器不支持支持localstorage");
}else{
//主逻辑业务
//1.写入
var storage=window.localStorage;
//写入a字段
storage["uid"]=uid;
//写入c字段
storage.setItem("passw",passw);
//console.log(typeof storage["passw"]+'=='+storage['passw']);
//console.log(typeof storage["uid"]+'=='+storage.uid);
//2.获取
//第一种方法读取
var a=storage.uid;
//console.log(a);
//第二种方法读取
var b=storage["passw"];
//console.log(b);
//第三种方法读取
var c=storage.getItem("passw");
//console.log(c);
//3.修改
storage.setItem("passw",333333);
//console.log(storage["passw"])
//4.删除
//storage.clear();//删除全部
//console.log(storage.uid+'和'+storage.passw)
//storage.removeItem('passw')//某个键值对删除
//console.log(storage.uid+'和'+storage.passw) //解析json数据传入
var data={
name:'宋宇',
sex:'男',
hobby:'program'
};
var d=JSON.stringify(data);//转成字符串
storage.setItem('data',d);
//获取到json字符串后转成json对象输出
var json=storage.getItem('data');
var jsonObj=JSON.parse(json);
console.log(jsonObj)
}
}
呼呼~搬运代码真累啊,重在理解和运用。代码不重要,重要的是罗百吉。
jquery.validate验证表单配合回调提交和h5.storage本地保存笔记的更多相关文章
- jquery.validate验证表单
添加引用 <script src="/${appName}/commons/js/validate/jquery.validate.min.js"></scrip ...
- Jquery validate验证表单时多个name相同的元素只验证第一个的问题
下面搜集了五种方法,主要还是前两个提供了解决方案,第三种需要修改jQuery源码: 修复jquery.validate插件中name属性相同(如name='a[]')时验证的bug 使用jquery. ...
- jquery.validate和jquery.form配合实现验证表单后AJAX提交
基础代码其实很简单,之后一点一点扩充.最终代码写在最后. 表单: <form action="@Url.Action("AddColumns","Cont ...
- 异步提交form的时候利用jQuery validate实现表单验证
异步提交form的时候利用jQuery validate实现表单验证相信很多人都用过jquery validate插件,非常好用,并且可以通过下面的语句来自定义验证规则 // 电话号码验证 ...
- Jquery.validate.js表单验证插件的使用
作为一个网站web开发人员,以前居然不知道还有表单验证这样好呀的插件,还在一行行写表单验证,真是后悔没能早点知道他们的存在. 最近公司不忙,自己学习一些东西的时候,发现了validation的一个实例 ...
- 第一百八十六节,jQuery,验证表单插件,Ajax 表单插件,验证和提交表单
jQuery,验证表单插件,Ajax 表单插件,验证和提交表单 HTML <form id="reg" method="post" action=&quo ...
- 基于Jquery Validate 的表单验证
基于Jquery Validate 的表单验证 jquery.validate.js是jquery下的一个验证插件,运用此插件我们可以很便捷的对表单元素进行格式验证. 在讲述基于Jquery Vali ...
- 基于Bootstrap+jQuery.validate Form表单验证实践
基于Bootstrap jQuery.validate Form表单验证实践 项目结构 : github 上源码地址:https://github.com/starzou/front-end- ...
- jQuery.validate.js表单验证插件
jQuery.validate.js表单验证插件的使用 效果: 代码: <!DOCTYPE html> <html lang="en"> <head& ...
随机推荐
- 线程阶段性总结——APM,ThreadPool,Task,TaskScheduler ,CancellationTokenSource
不管我们使用thread,threadPool,task,还是APM异步,本质都是在使用多线程.对于新手来说,不太敢用多线程的原因,就我个人的体验来说,就是对多线程的异常捕获方式或时机缺乏了解,而一旦 ...
- Android中禁止SlidingPaneLayout的侧滑功能
Android中使用android.support.v4.widget.SlidingPaneLayout实现侧滑功能的时候,可能出现滑动屏幕时与SlidingPaneLayout的侧滑发生冲突,查看 ...
- 【设计模式】 模式PK:代理模式VS装饰模式
1.概述 对于两个模式,首先要说的是,装饰模式就是代理模式的一个特殊应用,两者的共同点是都具有相同的接口,不同点则是代理模式着重对代理过程的控制,而装饰模式则是对类的功能进行加强或减弱,它着重类的功能 ...
- select + 回调 + 事件循环
#1. epoll并不代表一定比select好 # 在并发高的情况下,连接活跃度不是很高, epoll比select # 并发性不高,同时连接很活跃, select比epoll好 #通过非阻塞io实现 ...
- Item 30 用enum代替int常量类型枚举,string常量类型枚举
1.用枚举类型替代int枚举类型和string枚举类型 public class Show { // Int枚举类型 // public static final int APPLE_FUJI ...
- 【BZOJ】4558: [JLoi2016]方
[题意]给定有(n+1)*(m+1)个点的网格图,其中指定k个点不合法,求合法的正方形个数(四顶点合法). [算法]计数 [题解]斜着的正方形很麻烦,所以考虑每个斜正方形其外一定有正的外接正方形. 也 ...
- 【BZOJ】1776: [Usaco2010 Hol]cowpol 奶牛政坛
[题意]给定n个点的树,每个点属于一个分类,求每个分类中(至少有2个点)最远的两点距离.n<=200000 [算法]LCA [题解]结论:树上任意点集中最远的两点一定包含点集中深度最大的点(求树 ...
- 01-QQ 3-最终重构版
Demo示例程序源代码
源代码下载链接:01-QQ 3.zip292.5 KB // QQAppDelegate.h Map // // QQAppDelegate.h // 01-QQ // // Created ...
- 【洛谷 P4008】 [NOI2003]文本编辑器 (Splay)
题目链接 \(Splay\)先练到这吧(好像还有道毒瘤的维护数列诶,算了吧) 记录下光标的编号,维护就是\(Splay\)基操了. 另外数据有坑,数据是\(Windows\)下生成了,回车是'\n\r ...
- Linux内核堆栈使用方法 进程0和进程1【转】
转自:http://blog.csdn.net/yihaolovem/article/details/37119971 目录(?)[-] 8 Linux 系统中堆栈的使用方法 81 初始化阶段 82 ...