现在在网络上已经可以找到很多基于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========================

  1. jQuery.extend(jQuery.validator.messages, {
  2. required: "必选字段",
  3. remote: "请修正该字段",
  4. email: "请输入正确格式的电子邮件",
  5. url: "请输入合法的网址",
  6. date: "请输入合法的日期 xxxx/xx/xx",
  7. dateISO: "请输入合法的日期 (ISO).",
  8. number: "请输入合法的数字",
  9. digits: "只能输入整数",
  10. creditcard: "请输入合法的信用卡号",
  11. equalTo: "请再次输入相同的值",
  12. accept: "请输入拥有合法后缀名的字符串",
  13. maxlength: jQuery.validator.format("请输入一个 长度最多是 {0} 的字符串"),
  14. minlength: jQuery.validator.format("请输入一个 长度最少是 {0} 的字符串"),
  15. rangelength: jQuery.validator.format("请输入 一个长度介于 {0} 和 {1} 之间的字符串"),
  16. range: jQuery.validator.format("请输入一个介于 {0} 和 {1} 之间的值"),
  17. max: jQuery.validator.format("请输入一个最大为{0} 的值"),
  18. min: jQuery.validator.format("请输入一个最小为{0} 的值")
  19. });

==============================内容end========================

4:需要判断的正则

<script src="form/form.js" type="text/javascript"></script>

==============================内容start========================

  1. $(function () {
  2. /**
  3. * register form validate
  4. */
  5. //check names
  6. var errorMessage = "为字符类型";
  7. var errorMessage2="请输入正确的身份证";
  8. var errorMessage3="手机号码格式错误";
  9. var errorMessage4="只能输入中文";
  10. var errorMessage5="电话号码格式错误";
  11.  
  12. 下面的几个是自定义判断,就解析一个例子,其他差不多。
  13. jQuery.validator.addMethod("isString", function(value, element) {
  14. var isString = /^[a-zA-Z][a-zA-Z_]*$/; 红色的放正则,这条正则:是否为字符串
  15. return this.optional(element) || (isString.test(value)); 绿色的名字要一致,后面用该名字运用该规则
  16. }, errorMessage);
  17.  
  18. jQuery.validator.addMethod("isID", function(value, element) {
  19. var isID = /^[1-9]([0-9]{14}|[0-9]{17})$/;
  20. return this.optional(element) || (isID.test(value));
  21. }, errorMessage2);
  22.  
  23. jQuery.validator.addMethod("mobile", function(value, element) {
  24. var length = value.length;
  25. var mobile = /^(((13[0-9]{1})|(15[0-9]{1}))+\d{8})$/
  26. return this.optional(element) || (length == 11 && mobile.test(value));
  27. }, errorMessage3);
  28.  
  29. jQuery.validator.addMethod("chinese", function(value, element) {
  30. var chinese = /^[\u4e00-\u9fa5]+$/;
  31. return this.optional(element) || (chinese.test(value));
  32. }, errorMessage4);
  33.  
  34. jQuery.validator.addMethod("phone", function(value, element) {
  35. var length = value.length;
  36. 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}))$)$/
  37. return this.optional(element) || (phone.test(value));
  38. }, errorMessage5);
  39.  
  40. jQuery.validator.addMethod("isIdCardNo", function (value, element) {
  41. return this.optional(element) || isIdCardNo(value);
  42. }, "请正确输入您的身份证号码");
  43.  
  44. $('#sign_form').validate({ 表单formId
  45. errorElement : 'span',
  46.  
  47. rules : { 下面的是判断规则,这里解析一条,有的人喜欢把它们放在html内联,但个人喜欢提取出来统一放置。
  48. realname: { 需要判断的input name
  49. required: true, 是否为必填
  50. isString: true, 是否为字符串
  51. chinese: true, 是否为中文
  52. minlength: 3 最小长度为3
  53. },
  54. conplay: {
  55. required: true,
  56. isString: true,
  57. minlength: 3
  58. },
  59. password: {
  60. required: true,
  61. minlength: 6
  62. },
  63. confirm_password: {
  64. required: true,
  65. equalTo:"#password" 输入的值是否和#password值一致
  66. },
  67. mobile: {
  68. required: true,
  69. mobile: true
  70. },
  71. phone: {
  72. required: true,
  73. phone: true
  74. },
  75. position: {
  76. required: true,
  77. isString: true,
  78. chinese: true
  79.  
  80. },
  81. email: {
  82. required: true,
  83. email: true
  84. },
  85. dateISO: {
  86. dateISO: true
  87.  
  88. },
  89. uid: {
  90. required: true,
  91. isIdCardNo: true
  92. }
  93.  
  94. }
  95. });
  96.  
  97. });
  98.  
  99. //增加身份证验证函数
  100. function isIdCardNo(num) {
  101. var factorArr = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1);
  102. var parityBit = new Array("1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2");
  103. var varArray = new Array();
  104. var intValue;
  105. var lngProduct = 0;
  106. var intCheckDigit;
  107. var intStrLen = num.length;
  108. var idNumber = num;
  109. // initialize
  110. if ((intStrLen != 15) && (intStrLen != 18)) {
  111. return false;
  112. }
  113. // check and set value
  114. for (i = 0; i < intStrLen; i++) {
  115. varArray[i] = idNumber.charAt(i);
  116. if ((varArray[i] < '0' || varArray[i] > '9') && (i != 17)) {
  117. return false;
  118. } else if (i < 17) {
  119. varArray[i] = varArray[i] * factorArr[i];
  120. }
  121. }
  122. if (intStrLen == 18) {
  123. //check date
  124. var date8 = idNumber.substring(6, 14);
  125. if (isDate8(date8) == false) {
  126. return false;
  127. }
  128. // calculate the sum of the products
  129. for (i = 0; i < 17; i++) {
  130. lngProduct = lngProduct + varArray[i];
  131. }
  132. // calculate the check digit
  133. intCheckDigit = parityBit[lngProduct % 11];
  134. // check last digit
  135. if (varArray[17] != intCheckDigit) {
  136. return false;
  137. }
  138. }
  139. else { //length is 15
  140. //check date
  141. var date6 = idNumber.substring(6, 12);
  142. if (isDate6(date6) == false) {
  143. return false;
  144. }
  145. }
  146. return true;
  147. }

==============================内容end========================

5:基于bootstarp写的html

  1. <form class="form-horizontal" role="form" id="sign_form">
  2. <div class="form-group">
  3. <label for="realname" class="col-sm-3 control-label"><i class="required_span">*</i>真实姓名:</label>
  4. <div class="col-sm-6">
  5. <input type="text" class="form-control" id="realname" name="realname" placeholder="输入真实姓名">
  6. </div>
  7. </div>
  8. <div class="form-group">
  9. <label for="conplay" class="col-sm-3 control-label"><i class="required_span">*</i>公司名称:</label>
  10. <div class="col-sm-6">
  11. <input type="text" class="form-control" id="conplay" name="conplay" placeholder="输入公司名称">
  12. </div>
  13. </div>
  14. <div class="form-group">
  15. <label for="phone" class="col-sm-3 control-label"><i class="required_span">*</i>公司号码:</label>
  16. <div class="col-sm-6">
  17. <input type="text" class="form-control" id="phone" name="phone" placeholder="输入公司号码">
  18. </div>
  19. </div>
  20. <div class="form-group">
  21. <label for="mobile" class="col-sm-3 control-label"><i class="required_span">*</i>手机号码:</label>
  22. <div class="col-sm-6">
  23. <input type="text" class="form-control" id="mobile" name="mobile" placeholder="输入手机号码">
  24. </div>
  25. </div>
  26.  
  27. <div class="form-group">
  28. <label for="position" class="col-sm-3 control-label"><i class="required_span">*</i>职位:</label>
  29. <div class="col-sm-6">
  30. <input type="text" class="form-control" id="position" name="position" placeholder="输入职位">
  31. </div>
  32. </div>
  33. <div class="form-group">
  34. <label for="email" class="col-sm-3 control-label"><i class="required_span">*</i>邮箱地址:</label>
  35. <div class="col-sm-6">
  36. <input type="email" class="form-control" id="email" name="email" placeholder="1111111111@qq.com">
  37. </div>
  38. </div>
  39. <div class="form-group">
  40. <label for="yan_code" class="col-sm-3 control-label"><i class="required_span">*</i>验证码:</label>
  41. <div class="col-sm-6 code">
  42. <ul class="list-unstyled list-inline">
  43. <li><input type="email" class="form-control" id="yan_code" name="yan_code" placeholder="输入验证码"> </li>
  44. <li><img src="images/code.jpg" alt=""></li>
  45. <li>换一张</li>
  46. </ul>
  47. </div>
  48. </div>
  49.  
  50. <div class="form-group">
  51. <label for="" class="col-sm-3 "></label>
  52. <div class="col-sm-6">
  53. <input type="submit" value="提交" class="btn btn01" id="sign_form_submit">
  54. </div>
  55. </div>
  56.  
  57. </form>

6:修改下样式 。

/*表单重置*/

  1. .error{border-color: #F16951;color: #bf432e;}
  2. .valid{border-color: #5CB85C;}
  3. .required_span{color: #EFAD4D;padding-right: 5px;font-weight: bold;}

7:效果

jquery.validate插件在booststarp中的运用的更多相关文章

  1. jQuery Validate 插件

    >>>>>>>>>>>>>>>>>>>>>>>>> ...

  2. jquery validate 插件使用小结

    项目中整合了jquery validate插件,仿照别人的使用写了我的表单验证,结果不起作用.然后就各种找原因. 在网上下了jquery validate插件的完整包,看了看里边的例子,跟我的使用貌似 ...

  3. JQuery Validate插件与实现

    菜鸟拙见,望请纠正 一:效果展示:以下是两个注册表单验证,左边使用Jquery validate插件实现,右边是自己用JQuery实现,效果差不多,但个人推荐用插件,毕竟前人栽了树而且长大了后人当然好 ...

  4. jQuery Validate 插件为表单提供了强大的验证功能

    之前项目开发中,表单校验用的jQuery Validate 插件,这个插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求.该插件捆绑了一套有用的 ...

  5. 【jQuery】(6)---jQuery validate插件

    jQuery  validate插件 一.导入js库                                      先导入jQuery库,然后导入Validate插件,如果是中文提示还需要 ...

  6. 使用JQuery.Validate插件来校验页面表单有效性

    使用JQuery.Validate插件来校验页面表单有效性​1. [代码] 常见的注册表单元素 <form action="#" method="post" ...

  7. jQuery Validate插件实现表单强大的验证功能

    转自:http://www.jb51.net/article/76595.htm jQuery Validate插件捆绑了一套有用的验证方法,包括 URL 和电子邮件验证,同时提供了一个用来编写用户自 ...

  8. 前端验证,jquery.validate插件

    jQuery Validate 简介: jQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求.该插件捆绑了一套有用 ...

  9. 表单验证神器——jquery.validate插件

    jquery.validate.js插件应用举例,ajax方式提交数据. html代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tr ...

随机推荐

  1. Linux下后台程序完成自动输入密码等交互行为的例子

    今天要开发一个定时任务,然后加入cron列表中.但是有个问题摆在眼前,脚本的执行中需要输入数据库密码: mysql -u root -p << SQL use db; set names  ...

  2. centos7.0 没有netstat 和 ifconfig命令问题

    yum install wget 运行  yum install net-tools  就OK了 默认CentOS已经安装了OpenSSH,即使你是最小化安装也是如此.所以这里就不介绍OpenSSH的 ...

  3. Linux下创建与解压tar, tar.gz和tar.bz2文件及压缩率对比 | 沉思小屋

    刚 在qq群里面一位仁兄问到文件压缩的命令,平时工作中大多用解压缩命令,要是遇到压缩就现查(这不是一个好习惯),于是整理下Linux下创建与解压 zip.tar.tar.gz和tar.bz2文件及他们 ...

  4. React Native 开发笔记

    ReactNativeDemo 学习ReactNative开发,搭建ReactNative第一个项目 React Native 开发笔记 1.安装Homebrew $ /usr/bin/ruby -e ...

  5. php中引用和赋值的区别主要在哪里

    php中引用和赋值的区别 <pphp 的引用允许用两个变量来指向同一个内容. 相当于他们可以是 不同的名字,却可以指向 同一个 物理空间. 赋值,它实际上意味着把右边表达式的值赋给左边的运算数. ...

  6. load-on-startup

    在servlet的配置当中,<load-on-startup>1</load-on-startup>,一般出现在启动线程的servlet当中 含义是: 标记容器是否在启动的时候 ...

  7. Gift Hunting(分组背包)

    Gift Hunting Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...

  8. [小技巧] git: Your branch and 'origin/master' have diverged

    本文参考:http://stackoverflow.com/questions/19864934/git-your-branch-and-origin-master-have-diverged-how ...

  9. [转]get,post数据长度的限制

    一.问题起因 在某项目释放后Bug统计的附件<释放后问题>里有: 问题 原因 分析 备注 CSV处理时,如果处理的主题数过多,发生URL参数上限的错误: 可变长度的参数通过URL方式传递, ...

  10. lua中奇葩用法

    th> a=torch.zeros(,) [.0001s] th> a [torch.DoubleTensor of size 1x5] [.0002s] th> a[] [torc ...