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& ...
随机推荐
- JQuery学习四(过滤选择器)
:first选择第一个元素.$(“div:first”)进行选择第一个<div> :last 选择最后一个最后一个元素 $("div:last")选取最后一个<d ...
- 线程阶段性总结——APM,ThreadPool,Task,TaskScheduler ,CancellationTokenSource
不管我们使用thread,threadPool,task,还是APM异步,本质都是在使用多线程.对于新手来说,不太敢用多线程的原因,就我个人的体验来说,就是对多线程的异常捕获方式或时机缺乏了解,而一旦 ...
- Jade模板引擎学习(二)语法:代码、变量、循环、过滤器及mixin
Jade语法 一.代码 不会被缓冲代码 ul - for(var i=0; i; i++) li Jade Engine 会转换为: <ul> <li>Jade Engine& ...
- asp.net SimpleImpersonation使用身份模拟访问局域网共享目录
mvc中默认账户的权限很低,缺省情况下,ASP.NET应用程序以本机的ASPNET帐号运行,该帐号属于普通用户组,权限受到一定的限制,以保障ASP.NET应用程序运行的安全.但是有时需要某个ASP.N ...
- Ubuntu12.04 GIT安装和使用
一.安装GIT和配置GIT 1.安装GIT apt-get install git 2.配置GIT ##配置用户信息 git config --global user.name "John ...
- 阿里云maven仓库地址,速度提升100倍
参照:https://www.cnblogs.com/xxt19970908/p/6685777.html maven仓库用过的人都知道,国内有多么的悲催.还好有比较好用的镜像可以使用,尽快记录下来. ...
- IntentServicce;Looper;long-running task
7. If you want to carry on a long-running task, what do you need to do? IntentService:Service Servic ...
- 【usaco-Earthquake, 2001 Open】 0-1分数规划 & 最优比率生成树
题意:给定n个点m条边,一开始这些边全都是断的,要修一些边使得n个点全部联通.修完一共可以得到F元,修一条边有成本di和时间ti,要使得 得到的钱数 / 总时间 这个比值最大. 参考资料: 红线内的内 ...
- 超详细的Java面试题总结(一)之Java基础知识篇
面向对象和面向过程的区别 面向过程: 优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机.嵌入式开发.Linux/Unix等一般采用面向过程开发,性能是最重要的因 ...
- Python 下调用C动态链接库 -- (转)
在linux开发的动态链接库需要被python调用,首先需要生成.so文件. 生成动态链接库的方法网上有很多,主要就是首先根据源文件编译生成.o,然后链接这些.o文件-shared生成.so.需要注意 ...