validate插件深入学习-01 小白从看透一个插件开始
没有编程基础的的我,即使看了一遍jq文档也不知道怎么写程序,一个新的插件看了也不知道怎么用。
总是想做自己会的,自己不会的永远不去触碰,就永远不会。
都说编程这东西,很多都有很像的地方了,一个语言学通了,其他的看看就会了。
那么先从最简单的学起,建立信心,成就感,一步一步得让自己成为程序员~~
先要有目标才有动力,熟练使用validate插件,想到要用这个插件写程序不犯怵。
我不是一个优秀的程序员,我也不是一个有天赋的程序员,但起码我要是一个知道努力的程序员。
好了,开始!
开发过程中如何选取插件?
比如我想实现一套表单验证,风格统一,开发方便的,后续维护方便。
自己写?nono,第一步应该是先看看有没有现成的插件。
怎么选择插件呢?作者是不是大牛,是否还在更新,社区活跃度,插件支持是否全面等等,
其目的都是为了保证后续的更新维护,出现了问题容易找到解决办法,等等。。
validation插件是jquery最常用的插件之一,从2006年出版一直到现在,支持常用的百分之90的验证并支持自定义验证,这么全面我为啥不用呢?每次写验证都要头疼死了
http://plugins.jquery.com/validation/项目下载地址
validation插件的常用配置
一般一个插件想使用它都要给他进行配置,这个插件的常用语法规则如下:
①这个用validate()核心方法进行配置,里面用大括号"{}"包裹配置数据,每个配置项:加"{}"填写具体配置,以逗号","分割。
②name的值带"-"要用引号括起来,比如"confirm-password"
在这里区别两个概念 验证方法和验证规则。
method 验证方法,校验逻辑
1 username:{
2 required:true,//每一项叫method
3 minlength:2,
4 maxlength:16
5 },
rule 验证规则 元素和验证方法的关联 username元素和验证方法关联在一起,叫验证规则。
那么开始实际操作一下吧
①body最后要引入这两个文件,一个jquery库,一个validate主文件
<script type="text/javascript" src="jq/jquery-3.1.1.js"></script>
<script type="text/javascript" src="jq/jquery.validate.js"></script>
②html主要结构
<form id="demoform">
<fieldset>
<legend>用户登录</legend>
<div class="input-group">
<label class="control-label" for="username">用户名</label>
<input id="username" name="username" type="text"></input>
</div>
<div class="input-group">
<label class="control-label" for="password">密码</label>
<input id="password" name="password" type="password"></input>
</div>
<div class="input-group">
<label class="control-label" for="confirm-password">确认密码</label>
<input id="confirm-password" name="confirm-password" type="password"></input>
</div>
<div class="input-group">
<label class="control-label" for="number">0-100</label>
<input id="number" name="number" type="text"></input>
</div>
<div class="input-group">
<label class="control-label" for="email">邮箱</label>
<input id="email" name="email" type="text"></input>
</div>
<div class="input-group">
<label class="control-label" for="telephone">手机号</label>
<input id="telephone" name="telephone" type="text"></input>
</div>
<div class="input-group">
<label class="control-label" for="url">url</label>
<input id="url" name="url" type="number"></input>
</div>
<div class="input-group">
<label class="control-label" for="date">出生日期</label>
<input id="date" name="date" type="text"></input>
</div>
<input type="submit" value="登录"></input>
</fieldset>
</form>
③jq代码 一定要放在引入的jq库和validate库后
rules是规则,messages是响应的规则不符合时候的提示
<script type="text/javascript">
var b=10;
$(document).ready(function(){
var a=10;
var validate=$('#demoform').validate({
//debug:true,
//验证规则
rules:{
username:{//name值
required:true,
minlength:2,
maxlength:16,
//get请求
//remote:"remote.json"
//post请求
/*remote:{
url:'remote.jiso',
type:'post',
data:{
loginTime:function(){
return +new Date;//取一个gettime,返回一个long型的毫秒数的时间,+把一个字符转成一个数字
}
} }*/
},
password:{
required:true,
rangelength:[8,16]
},
//"带-要用引号括起来"
"confirm-password":{
equalTo:"#password"//选择器,此处是id选择器,判断与该选择器元素的值是否相同
},
number:{
max:100,
min:0,
//range:[0,100] 也是0-100可以有小数
//number:true,//数字
digits:true//整数
},
email:{
required:true,
email:true
},
url:{
url:true,
},
telephone:{
required:true,
number:true,
rangelength:[11,11]
},
date:{
date:true,//用new date()来转换,转换成功就是对的
dateISO:true //2012-11-12 或是/
} },
//错误提示
messages:{
username:{
required:"必须填写用户名",
minlength:"用户名最少为两位",
maxlength:"用户名最多为十位"
},
password:{
required:"必须填写密码",
rangelength:"密码最少为八位,最多为十六位"
},
"confirm-password":{
equalTo:"两次输入密码不一致"
},
number:{
max:"最大值100",
min:"最小值0",
//number:"请输入数字",
digits:"请输入整数"
},
email:{
required:"必须填写邮箱",
email:"请正确填写邮箱地址"
},
url:{
url:"请填写以http开头的正确url地址",
},
telephone:{
required:"必须填写手机号",
number:"请输入数字",
rangelength:"手机号为11位数字"
},
date:{
dateISO:"2012-11-12 或是/分隔"
}
} })
})
</script>
常识我竟然不知道
调试 shift+enter是回车
定义全局变量在控制台才可以调用
validate插件深入学习-01 小白从看透一个插件开始的更多相关文章
- 简述 Mybatis 的插件运行原理,以及如何编写一个插件?
Mybatis 仅可以编写针对 ParameterHandler.ResultSetHandler. StatementHandler.Executor 这 4 种接口的插件,Mybatis 使用 J ...
- 简述 Mybatis 的插件运行原理,以及如何编写一个插件。
Mybatis 仅可以编写针对 ParameterHandler.ResultSetHandler. StatementHandler.Executor 这 4 种接口的插件,Mybatis 使用 J ...
- Python学习--01入门
Python学习--01入门 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.和PHP一样,它是后端开发语言. 如果有C语言.PHP语言.JAVA语言等其中一种语言的基础,学习Py ...
- discuz论坛插件设计学习培训视频全套教程
discuz模板跟插件开发的教程比较少,特搜集给大家学习插件做的好,在dsicuz应用中心出 售也是可以卖不少的呢 教程目录:第1章 本章的标题第1节Discuz! X 产品安装与配置第2节模板风格 ...
- Java虚拟机JVM学习01 流程概述
Java虚拟机JVM学习01 流程概述 Java虚拟机与程序的生命周期 一个运行时的Java虚拟机(JVM)负责运行一个Java程序. 当启动一个Java程序时,一个虚拟机实例诞生:当程序关闭退出,这 ...
- Android Testing学习01 介绍 测试测什么 测试的类型
Android Testing学习01 介绍 测试测什么 测试的类型 Android 测试 测什么 1.Activity的生命周期事件 应该测试Activity的生命周期事件处理. 如果你的Activ ...
- IM通信协议逆向分析、Wireshark自定义数据包格式解析插件编程学习
相关学习资料 http://hi.baidu.com/hucyuansheng/item/bf2bfddefd1ee70ad68ed04d http://en.wikipedia.org/wiki/I ...
- JQuery插件的学习
此前一直想就关于Jquery插件的开发,做一个深入的学习,由于各种原因,当然主要是自己太懒了...今天就系统分析一下Jquery插件的开发(参考了http://www.xprogrammer.com/ ...
- Java学习01
Java学习01 第一章 1.JRE与JDK JDK(JAVA Develop Kit,JAVA开发工具包)提供了Java的开发环境和运行环境,主要用于开发JAVA程序,面向Java程序的开发者; J ...
随机推荐
- Css定位之absolute_慕课网课程笔记
absolute和float 绝对定位和浮动有相似之处,即都有破坏性和包裹性,破坏性是指其会导致包裹自身的复原塌陷,包裹性是float的天赋技能,对于绝对定位来说,其会包括子元素 越独立越强大 1.去 ...
- FreeBSD 查看硬件信息
systat 能实时查看各种信息 systat -pigs 默认值CPU systat -iostat 硬盘IO systat -swap 交换分区 systat -mbufs 网络缓冲区 systa ...
- oracle同一个数据库实例不同的用户之间的表、序列授权操作
1.背景:用户jtuser中有jtproduct中表A,B的同义词,在用户jtuser中向表A,B插入数据,提示“权限不够” 2.将A,B表授权给jtuser用户 $ sqlplus / as sys ...
- Easy Tag Write(3.3)
package skyseraph.android.util; /** * @Title : Constant.java * @Package : tcl.nfc.tv.util * @ClassNa ...
- Unit01: JAVA开发环境案例
Top JAVA Fundamental DAY01 JDK及Eclipse目录结构操作 JDK的安装及配置 控制台版的JAVA HelloWorld 使用Eclipse开发Java应用程序 1 JD ...
- Oracle 多行变一列的方法
多行变一列的方法有很多,觉得这个第一眼看懂了当时就用的这个办法. 情况是这样的.以下数据前几列是一样的,需要把VAT_VALUE_CHAR 的值放在同一行上. SELECT * FROM ps_vat ...
- Mysql 数据库中所有列名为某个值的 sql 语句
SELECT DISTINCT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME IN ('columnname') AND T ...
- 提供一个表单,进行post数据处理
var strContent = "aaaaa"; html.Append("<html><body><form id='postUploa ...
- 1016. Boundaries on A New Kind of Science 解题报告
题目链接: http://soj.sysu.edu.cn/1016 题目大意: 给定一个字符串和256条规则,将某条规则应用于字符串,字符串将发生变化,给定一个数max,求出在max步内可以将字符串变 ...
- AngularJs自定义指令--执行顺序 (原文:http://www.cnblogs.com/sagacite/p/4624227.html)
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...