基于BootstrapValidator的Form表单验证(24)


Posted in Javascript onDecember 12, 2016

Form表单进行数据验证是十分必要的,我们可以自己写JS脚本或者使用JQuery Validate 插件来实现。对于Bootstrap而言,利用BootstrapValidator来做Form表单验证是个相当不错的选择,两者完全兼容,我们也不用去关注CSS样式等美工效果。

0x01 引入BootstrapValidator

官网:BootstrapValidator,作为一个纯粹的使用者,我们可以在上面的链接处下载相关文件并引入,也可以利用CDN方式引入:

<link href="//cdn.bootcss.com/bootstrap-validator/0.5.3/css/bootstrapValidator.min.css" rel="stylesheet">
<script src="//cdn.bootcss.com/bootstrap-validator/0.5.3/js/bootstrapValidator.min.js"></script>

0x02 用户注册实例

下面使用一个用户注册的实例,来总结BootstrapValidator的基本使用方法(其中的JS和CSS文件的引入,请根据自己的实际位置进行调整):

<!DOCTYPE html>
<html lang="zh-cn">
<head>
 <meta charset="UTF-8">
 <title>用户注册</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <link href="../../../css/bootstrap.min.css" rel="stylesheet">
 <link href="//cdn.bootcss.com/bootstrap-validator/0.5.3/css/bootstrapValidator.min.css" rel="stylesheet">
 <script src="http://cdn.bootcss.com/jquery/1.11.1/jquery.min.js"></script>
 <script src="../../../js/bootstrap.min.js"></script>
 <script src="//cdn.bootcss.com/bootstrap-validator/0.5.3/js/bootstrapValidator.min.js"></script>
</head>
<body>
<div class="container col-lg-3 col-lg-offset-3">
 <div class="page-header">
  <h3>用户注册</h3>
 </div>
 <div>
  <form id="registerForm" method="POST" class="form-horizontal" action="用户注册.html">
   <div class="form-group">
    <!--注册的用户名-->
    <label class="control-label" for="username">*请输入注册用户名:</label>
    <input type="text" class="form-control" placeholder="请输入注册用户名" name="username" id="username">
   </div>
   <div class="form-group">
    <!--注册密码-->
    <label class="control-label" for="password">*请输入注册密码:</label>
    <input type="password" class="form-control" placeholder="请输入注册密码" name="password" id="password">
   </div>
   <div class="form-group">
    <!--确认密码-->
    <label class="control-label" for="repassword">*请输入确认密码:</label>
    <input type="password" class="form-control" placeholder="请输入确认密码" name="repassword" id="repassword">
   </div>
   <div class="form-group">
    <label class="control-label" for="phone">*请输入手机号码:</label>
    <input type="text" class="form-control" placeholder="请输入手机号码" name="phone" id="phone">
   </div>
   <div class="form-group">
    <label class="control-label" for="email">*请输入电子邮箱:</label>
    <input type="text" class="form-control" placeholder="请输入电子邮箱" name="email" id="email">
   </div>
   <div class="form-group">
    <label class="control-label" for="inviteCode">*请输入邀请码:</label>
    <input type="text" class="form-control" placeholder="请输入邀请码" name="inviteCode" id="inviteCode">
   </div>
   <div class="form-group">
    <button type="submit" class="btn btn-primary form-control">提交注册</button>
   </div>
  </form>
 </div>
</div>
<script>
 $(function () {
  <!--数据验证-->
  $("#registerForm").bootstrapValidator({
   message:'This value is not valid',
//   定义未通过验证的状态图标
   feedbackIcons: {/*输入框不同状态,显示图片的样式*/
    valid: 'glyphicon glyphicon-ok',
    invalid: 'glyphicon glyphicon-remove',
    validating: 'glyphicon glyphicon-refresh'
   },
//   字段验证
   fields:{
//    用户名
    username:{
     message:'用户名非法',
     validators:{
//      非空
      notEmpty:{
       message:'用户名不能为空'
      },
//      限制字符串长度
      stringLength:{
       min:3,
       max:20,
       message:'用户名长度必须位于3到20之间'
      },
//      基于正则表达是的验证
      regexp:{
       regexp:/^[a-zA-Z0-9_\.]+$/,
       message:'用户名由数字字母下划线和.组成'
      }
     }
    },

//    密码
    password:{
     message:'密码非法',
     validators:{
      notEmpty:{
       message:'密码不能为空'
      },
//      限制字符串长度
      stringLength:{
       min:3,
       max:20,
       message:'密码长度必须位于3到20之间'
      },
//      相同性检测
      identical:{
//       需要验证的field
       field:'password',
       message:'两次密码输入不一致'
      },
//      基于正则表达是的验证
      regexp:{
       regexp:/^[a-zA-Z0-9_\.]+$/,
       message:'密码由数字字母下划线和.组成'
      }
     }
    },

    //    确认密码
    repassword:{
     message:'密码非法',
     validators:{
      notEmpty:{
       message:'密码不能为空'
      },
//      限制字符串长度
      stringLength:{
       min:3,
       max:20,
       message:'密码长度必须位于3到20之间'
      },
//      相同性检测
      identical:{
//       需要验证的field
       field:'password',
       message:'两次密码输入不一致'
      },
//      基于正则表达是的验证
      regexp:{
       regexp:/^[a-zA-Z0-9_\.]+$/,
       message:'密码由数字字母下划线和.组成'
      }
     }
    },

//    电子邮箱
    email:{
     validators:{
      notEmpty:{
       message:'邮箱地址不能为空'
      },
      emailAddress:{
       message:'请输入正确的邮箱地址'
      }
     }
    },

//    手机号码
    phone:{
     validators:{
      notEmpty:{
       message:'手机号码不能为空'
      },
      stringlength:{
       min:11,
       max:11,
       message:'请输入11位手机号码'
      },
      regexp:{
       regexp:/^1[3|5|8]{1}[0-9]{9}$/,
       message:'请输入正确的手机号码'
      }
     }
    },

//    邀请码
    inviteCode:{
     validators:{
      notEmpty:{
       message:'邀请码不能为空'
      },
      stringlength:{
       min:9,
       max:9,
       message:'请输入9位邀请码'
      },
      regexp:{
       regexp:/^[\w]{8}$/,
       message:'邀请码由数字和字母组成'
      }
     }
    }
   }
  })
 })
</script>
</body>
</html>

验证效果如下:

基于BootstrapValidator的Form表单验证(24)

0x03 后记

在实际应用中,可能还会遇到类似Ajax提交验证的问题,处理过程是类似的,以后再结合实际的应用来讲这个问题。
类似BootstrapValidator这种基于JS来做验证的过程只是客户端验证,只是为了提高用户体验,并不能保证提交数据的安全性,后端开发者还要做相应的后台验证。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery.tmpl JQuery模板插件
Oct 10 Javascript
jquerydom对象的事件隐藏显示和对象数组示例
Dec 10 Javascript
jquery easyui combox一些实用的小方法
Dec 25 Javascript
悬浮数字的实现案例
Feb 19 Javascript
jQuery实现鼠标滑向当前图片高亮显示并且其它图片变灰的方法
Jul 27 Javascript
Jquery全屏相册插件zoomvisualizer具有调节放大与缩小功能
Nov 02 Javascript
浅析jQuery Ajax通用js封装
Jun 22 Javascript
Node.js使用orm2进行update操作时关联字段无法修改的解决方法
Jun 13 Javascript
JavaScript实现写入文件到本地的方法【基于FileSaver.js插件】
Mar 15 Javascript
vue配置font-awesome5的方法步骤
Jan 27 Javascript
Element 默认勾选表格 toggleRowSelection的实现
Sep 04 Javascript
Vue OpenLayer测距功能的实现
Apr 20 Vue.js
Sequelize中用group by进行分组聚合查询
Dec 12 #Javascript
js原生之焦点图转换加定时器实例
Dec 12 #Javascript
IntersectionObserver API 详解篇
Dec 11 #Javascript
想学习javascript JS和jQuery哪个重要 先学哪个
Dec 11 #Javascript
基于javascript实现的购物商城商品倒计时实例
Dec 11 #Javascript
基于jquery实现的鼠标悬停提示案例
Dec 11 #Javascript
jquery滚动条插件(可以自定义)
Dec 11 #Javascript
You might like
PHP 判断变量类型实现代码
2009/10/23 PHP
PHP curl模拟浏览器采集阿里巴巴的实现代码
2011/04/20 PHP
php daddslashes()和 saddslashes()有哪些区别分析
2012/10/26 PHP
CodeIgniter删除和设置Cookie的方法
2015/04/07 PHP
SSO单点登录的PHP实现方法(Laravel框架)
2016/03/23 PHP
php进行ip地址掩码运算处理的方法
2016/07/11 PHP
php使用scandir()函数扫描指定目录下所有文件示例
2019/06/08 PHP
JavaScript 创建运动框架的实现代码
2013/05/08 Javascript
浅谈JavaScript函数节流
2014/12/09 Javascript
jquery实现鼠标滑过显示提示框的方法
2015/02/05 Javascript
javascript实现俄罗斯方块游戏的思路和方法
2015/04/27 Javascript
AngularJS学习笔记之基本指令(init、repeat)
2015/06/16 Javascript
全面理解JavaScript中的继承(必看)
2016/06/16 Javascript
Vue 2.x教程之基础API
2017/03/06 Javascript
Vue声明式渲染详解
2017/05/17 Javascript
vue通过点击事件读取音频文件的方法
2018/05/30 Javascript
three.js实现炫酷的全景3D重力感应
2018/12/30 Javascript
JavaScript实现页面中录音功能的方法
2019/06/04 Javascript
JS实现瀑布流效果
2020/03/07 Javascript
js验证密码强度解析
2020/03/18 Javascript
uniapp与webview之间的相互传值的实现
2020/06/29 Javascript
js闭包和垃圾回收机制示例详解
2021/03/01 Javascript
[03:37]2014DOTA2国际邀请赛 主赛事第一日胜者组TOPPLAY
2014/07/19 DOTA
python实现bitmap数据结构详解
2014/02/17 Python
python批量添加zabbix Screens的两个脚本分享
2017/01/16 Python
Python logging管理不同级别log打印和存储实例
2018/01/19 Python
基于python的ini配置文件操作工具类
2019/04/24 Python
new_zeros() pytorch版本的转换方式
2020/02/18 Python
Numpy 多维数据数组的实现
2020/06/18 Python
使用css3做0.5px的细线的示例代码
2018/01/18 HTML / CSS
日本著名的服饰鞋帽综合类购物网站:MAGASEEK
2019/01/09 全球购物
Java面试题:Java类的Main方法如果是Private将会怎么样
2016/08/18 面试题
父亲的菜园教学反思
2014/02/13 职场文书
送餐员岗位职责范本
2014/02/21 职场文书
服务承诺口号
2014/05/22 职场文书
vue+iview实现手机号分段输入框
2022/03/25 Vue.js