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 ...
随机推荐
- Web API 和 WCF 的比较
现在有很多可用的技术允许你创建被不同客户端所消费的服务,这些客户端可能是Web应用程序.Windows应用程序和移动应用等.服务可以支持http协议或者其他协议.接下来的讨论仅限于ASP.NET We ...
- 【JQGRID DOCUMENTATION】.学习笔记.3.Pager
处理大量数据时,一次只想显示一小部分.这时就需要Navigation Bar.目前Pager不能用于TreeGrid. 定义 }); 定义高度grid,pager是grid的一部分,宽度等于gird的 ...
- ecshop第一讲之安装
今天开始对Ectouch做一些研究,但是发现网上资源很少,而且官网对服务都需收费:并且提供的wiki.官方文档等都是空的,瞬间感觉,,,,后来开始海量搜索,最后发现只有论坛还有些东西可以看看,并对海量 ...
- 为ecshop红包增加”转赠”功能
ecshop促销中使用红包激励用户购物,要想炒热活动,红包就需要有物以稀为贵的感觉.有人求有人送,这样红包之间的转赠有助于拉动第二梯队的顾客.但是如果已经把红包添加到自己的账户了怎么办?如果ecsho ...
- recyclview多条目布局
多条目基础 http://blog.csdn.net/fangchao3652/article/details/43148871 添加底部加载更多 http://blog.csdn.net/fangc ...
- /proc/sysrq-trigger的功能 介绍
介绍/proc/sysrq-trigger的强大功能 让大家了解一下,在linux里,可以利用/proc/sysrq-trigger做些事情 # 立即重新启动计算机echo "b" ...
- opencv的实用研究--分析轮廓并寻找边界点
opencv的实用研究--分析轮廓并寻找边界点 轮廓是图像处理中非常常见的.对现实中的图像进行采样.色彩变化.灰度变化之后,能够处理得到的是“轮廓”.它直接地反应你了需要分析对象的边界特 ...
- Unity-Animator深入系列---目标匹配Target Matching
回到 Animator深入系列总目录 一开始会理所当然的觉得,匹配是这样的: 但结果却是这样的(右边的Cube是匹配目标): 感觉这个接口应该是专门为攀爬之类的动画准备的,属于被动匹配位置,移动整个对 ...
- Web项目后台测试流程
1. 本地下载项目源码 1. Git clone项目代码到本地(本地项目代码1)并fetch: 2. Switch到master分支: 3. Create测试分支(例如:test1)并勾选“Switc ...
- HDU How many integers can you find 容斥
How many integers can you find Time Limit: 12000/5000 MS (Java/Others) Memory Limit: 65536/32768 ...