jquery.validate插件在booststarp中的运用
现在在网络上已经可以找到很多基于bootstarp的表单认证,但是验证的都不全面的,下载后,我们还要理解作者的思路然后进行修改添加,这种修改方式往往适合学习,时间很多的时候。但是我们很多时候是没有时间去慢慢理解和修改。所以我们还是老实点,用validate来做bootstarp表单认证吧,我这里用的是取巧的方式,正常使用的判断状态应该是用bootstarp提供的表单状态类如has-error。等有时间的时候我们再来修改下。现在就先用下面的方法。
1:首先我们去validate官网下载 jQuery
Validate插件
2:在页面中引入jQuery
Validate库
<script
src="bootstrap/jquery/jquery-1.11.1.min.js"> 之前要先引入Jq库
<script type="text/javascript" src="form/jquery.validate.js"></script>
3:重置下提示信息,默认的提示信息为英文。
<script src="form/resetform.js" type="text/javascript"></script>
==============================内容start========================
- jQuery.extend(jQuery.validator.messages, {
- required: "必选字段",
- remote: "请修正该字段",
- email: "请输入正确格式的电子邮件",
- url: "请输入合法的网址",
- date: "请输入合法的日期 xxxx/xx/xx",
- dateISO: "请输入合法的日期 (ISO).",
- number: "请输入合法的数字",
- digits: "只能输入整数",
- creditcard: "请输入合法的信用卡号",
- equalTo: "请再次输入相同的值",
- accept: "请输入拥有合法后缀名的字符串",
- maxlength: jQuery.validator.format("请输入一个 长度最多是 {0} 的字符串"),
- minlength: jQuery.validator.format("请输入一个 长度最少是 {0} 的字符串"),
- rangelength: jQuery.validator.format("请输入 一个长度介于 {0} 和 {1} 之间的字符串"),
- range: jQuery.validator.format("请输入一个介于 {0} 和 {1} 之间的值"),
- max: jQuery.validator.format("请输入一个最大为{0} 的值"),
- min: jQuery.validator.format("请输入一个最小为{0} 的值")
- });
==============================内容end========================
4:需要判断的正则
<script src="form/form.js" type="text/javascript"></script>
==============================内容start========================
- $(function () {
- /**
- * register form validate
- */
- //check names
- var errorMessage = "为字符类型";
- var errorMessage2="请输入正确的身份证";
- var errorMessage3="手机号码格式错误";
- var errorMessage4="只能输入中文";
- var errorMessage5="电话号码格式错误";
- 下面的几个是自定义判断,就解析一个例子,其他差不多。
- jQuery.validator.addMethod("isString", function(value, element) {
- var isString = /^[a-zA-Z][a-zA-Z_]*$/; 红色的放正则,这条正则:是否为字符串
- return this.optional(element) || (isString.test(value)); 绿色的名字要一致,后面用该名字运用该规则
- }, errorMessage);
- jQuery.validator.addMethod("isID", function(value, element) {
- var isID = /^[1-9]([0-9]{14}|[0-9]{17})$/;
- return this.optional(element) || (isID.test(value));
- }, errorMessage2);
- jQuery.validator.addMethod("mobile", function(value, element) {
- var length = value.length;
- var mobile = /^(((13[0-9]{1})|(15[0-9]{1}))+\d{8})$/
- return this.optional(element) || (length == 11 && mobile.test(value));
- }, errorMessage3);
- jQuery.validator.addMethod("chinese", function(value, element) {
- var chinese = /^[\u4e00-\u9fa5]+$/;
- return this.optional(element) || (chinese.test(value));
- }, errorMessage4);
- jQuery.validator.addMethod("phone", function(value, element) {
- var length = value.length;
- var phone = /^((\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3})-(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1}))$)$/
- return this.optional(element) || (phone.test(value));
- }, errorMessage5);
- jQuery.validator.addMethod("isIdCardNo", function (value, element) {
- return this.optional(element) || isIdCardNo(value);
- }, "请正确输入您的身份证号码");
- $('#sign_form').validate({ 表单form的Id
- errorElement : 'span',
- rules : { 下面的是判断规则,这里解析一条,有的人喜欢把它们放在html内联,但个人喜欢提取出来统一放置。
- realname: { 需要判断的input name
- required: true, 是否为必填
- isString: true, 是否为字符串
- chinese: true, 是否为中文
- minlength: 3 最小长度为3
- },
- conplay: {
- required: true,
- isString: true,
- minlength: 3
- },
- password: {
- required: true,
- minlength: 6
- },
- confirm_password: {
- required: true,
- equalTo:"#password" 输入的值是否和#password值一致
- },
- mobile: {
- required: true,
- mobile: true
- },
- phone: {
- required: true,
- phone: true
- },
- position: {
- required: true,
- isString: true,
- chinese: true
- },
- email: {
- required: true,
- email: true
- },
- dateISO: {
- dateISO: true
- },
- uid: {
- required: true,
- isIdCardNo: true
- }
- }
- });
- });
- //增加身份证验证函数
- function isIdCardNo(num) {
- var factorArr = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1);
- var parityBit = new Array("1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2");
- var varArray = new Array();
- var intValue;
- var lngProduct = 0;
- var intCheckDigit;
- var intStrLen = num.length;
- var idNumber = num;
- // initialize
- if ((intStrLen != 15) && (intStrLen != 18)) {
- return false;
- }
- // check and set value
- for (i = 0; i < intStrLen; i++) {
- varArray[i] = idNumber.charAt(i);
- if ((varArray[i] < '0' || varArray[i] > '9') && (i != 17)) {
- return false;
- } else if (i < 17) {
- varArray[i] = varArray[i] * factorArr[i];
- }
- }
- if (intStrLen == 18) {
- //check date
- var date8 = idNumber.substring(6, 14);
- if (isDate8(date8) == false) {
- return false;
- }
- // calculate the sum of the products
- for (i = 0; i < 17; i++) {
- lngProduct = lngProduct + varArray[i];
- }
- // calculate the check digit
- intCheckDigit = parityBit[lngProduct % 11];
- // check last digit
- if (varArray[17] != intCheckDigit) {
- return false;
- }
- }
- else { //length is 15
- //check date
- var date6 = idNumber.substring(6, 12);
- if (isDate6(date6) == false) {
- return false;
- }
- }
- return true;
- }
==============================内容end========================
5:基于bootstarp写的html
- <form class="form-horizontal" role="form" id="sign_form">
- <div class="form-group">
- <label for="realname" class="col-sm-3 control-label"><i class="required_span">*</i>真实姓名:</label>
- <div class="col-sm-6">
- <input type="text" class="form-control" id="realname" name="realname" placeholder="输入真实姓名">
- </div>
- </div>
- <div class="form-group">
- <label for="conplay" class="col-sm-3 control-label"><i class="required_span">*</i>公司名称:</label>
- <div class="col-sm-6">
- <input type="text" class="form-control" id="conplay" name="conplay" placeholder="输入公司名称">
- </div>
- </div>
- <div class="form-group">
- <label for="phone" class="col-sm-3 control-label"><i class="required_span">*</i>公司号码:</label>
- <div class="col-sm-6">
- <input type="text" class="form-control" id="phone" name="phone" placeholder="输入公司号码">
- </div>
- </div>
- <div class="form-group">
- <label for="mobile" class="col-sm-3 control-label"><i class="required_span">*</i>手机号码:</label>
- <div class="col-sm-6">
- <input type="text" class="form-control" id="mobile" name="mobile" placeholder="输入手机号码">
- </div>
- </div>
- <div class="form-group">
- <label for="position" class="col-sm-3 control-label"><i class="required_span">*</i>职位:</label>
- <div class="col-sm-6">
- <input type="text" class="form-control" id="position" name="position" placeholder="输入职位">
- </div>
- </div>
- <div class="form-group">
- <label for="email" class="col-sm-3 control-label"><i class="required_span">*</i>邮箱地址:</label>
- <div class="col-sm-6">
- <input type="email" class="form-control" id="email" name="email" placeholder="1111111111@qq.com">
- </div>
- </div>
- <div class="form-group">
- <label for="yan_code" class="col-sm-3 control-label"><i class="required_span">*</i>验证码:</label>
- <div class="col-sm-6 code">
- <ul class="list-unstyled list-inline">
- <li><input type="email" class="form-control" id="yan_code" name="yan_code" placeholder="输入验证码"> </li>
- <li><img src="images/code.jpg" alt=""></li>
- <li>换一张</li>
- </ul>
- </div>
- </div>
- <div class="form-group">
- <label for="" class="col-sm-3 "></label>
- <div class="col-sm-6">
- <input type="submit" value="提交" class="btn btn01" id="sign_form_submit">
- </div>
- </div>
- </form>
6:修改下样式 。
/*表单重置*/
- .error{border-color: #F16951;color: #bf432e;}
- .valid{border-color: #5CB85C;}
- .required_span{color: #EFAD4D;padding-right: 5px;font-weight: bold;}
7:效果
jquery.validate插件在booststarp中的运用的更多相关文章
- jQuery Validate 插件
>>>>>>>>>>>>>>>>>>>>>>>>> ...
- jquery validate 插件使用小结
项目中整合了jquery validate插件,仿照别人的使用写了我的表单验证,结果不起作用.然后就各种找原因. 在网上下了jquery validate插件的完整包,看了看里边的例子,跟我的使用貌似 ...
- JQuery Validate插件与实现
菜鸟拙见,望请纠正 一:效果展示:以下是两个注册表单验证,左边使用Jquery validate插件实现,右边是自己用JQuery实现,效果差不多,但个人推荐用插件,毕竟前人栽了树而且长大了后人当然好 ...
- jQuery Validate 插件为表单提供了强大的验证功能
之前项目开发中,表单校验用的jQuery Validate 插件,这个插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求.该插件捆绑了一套有用的 ...
- 【jQuery】(6)---jQuery validate插件
jQuery validate插件 一.导入js库 先导入jQuery库,然后导入Validate插件,如果是中文提示还需要 ...
- 使用JQuery.Validate插件来校验页面表单有效性
使用JQuery.Validate插件来校验页面表单有效性1. [代码] 常见的注册表单元素 <form action="#" method="post" ...
- jQuery Validate插件实现表单强大的验证功能
转自:http://www.jb51.net/article/76595.htm jQuery Validate插件捆绑了一套有用的验证方法,包括 URL 和电子邮件验证,同时提供了一个用来编写用户自 ...
- 前端验证,jquery.validate插件
jQuery Validate 简介: jQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求.该插件捆绑了一套有用 ...
- 表单验证神器——jquery.validate插件
jquery.validate.js插件应用举例,ajax方式提交数据. html代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tr ...
随机推荐
- Linux下后台程序完成自动输入密码等交互行为的例子
今天要开发一个定时任务,然后加入cron列表中.但是有个问题摆在眼前,脚本的执行中需要输入数据库密码: mysql -u root -p << SQL use db; set names ...
- centos7.0 没有netstat 和 ifconfig命令问题
yum install wget 运行 yum install net-tools 就OK了 默认CentOS已经安装了OpenSSH,即使你是最小化安装也是如此.所以这里就不介绍OpenSSH的 ...
- Linux下创建与解压tar, tar.gz和tar.bz2文件及压缩率对比 | 沉思小屋
刚 在qq群里面一位仁兄问到文件压缩的命令,平时工作中大多用解压缩命令,要是遇到压缩就现查(这不是一个好习惯),于是整理下Linux下创建与解压 zip.tar.tar.gz和tar.bz2文件及他们 ...
- React Native 开发笔记
ReactNativeDemo 学习ReactNative开发,搭建ReactNative第一个项目 React Native 开发笔记 1.安装Homebrew $ /usr/bin/ruby -e ...
- php中引用和赋值的区别主要在哪里
php中引用和赋值的区别 <pphp 的引用允许用两个变量来指向同一个内容. 相当于他们可以是 不同的名字,却可以指向 同一个 物理空间. 赋值,它实际上意味着把右边表达式的值赋给左边的运算数. ...
- load-on-startup
在servlet的配置当中,<load-on-startup>1</load-on-startup>,一般出现在启动线程的servlet当中 含义是: 标记容器是否在启动的时候 ...
- Gift Hunting(分组背包)
Gift Hunting Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- [小技巧] git: Your branch and 'origin/master' have diverged
本文参考:http://stackoverflow.com/questions/19864934/git-your-branch-and-origin-master-have-diverged-how ...
- [转]get,post数据长度的限制
一.问题起因 在某项目释放后Bug统计的附件<释放后问题>里有: 问题 原因 分析 备注 CSV处理时,如果处理的主题数过多,发生URL参数上限的错误: 可变长度的参数通过URL方式传递, ...
- lua中奇葩用法
th> a=torch.zeros(,) [.0001s] th> a [torch.DoubleTensor of size 1x5] [.0002s] th> a[] [torc ...