Bootstrap简单实用的表单验证插件BootstrapValidator用法实例详解

下面是对“Bootstrap简单实用的表单验证插件BootstrapValidator用法实例详解”的完整攻略:

BootstrapValidator简介

BootstrapValidator是一款基于jQuery和Bootstrap的强大表单验证插件。它能够快速、简单地实现表单验证功能,并且拥有丰富的配置选项,支持多种类型的表单验证规则。

BootstrapValidator的使用步骤

使用BootstrapValidator需要进行以下步骤:

步骤1:引入相关文件

在HTML文件中引入相关的文件,包括jQuery、Bootstrap以及BootstrapValidator的CSS和JS文件。具体代码如下:

<!-- 引入jQuery文件 -->
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>

<!-- 引入Bootstrap文件 -->
<link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/4.0.0/css/bootstrap.min.css">
<script src="https://cdn.bootcss.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>

<!-- 引入BootstrapValidator文件 -->
<link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap-validator/0.5.3/css/bootstrapValidator.min.css">
<script src="https://cdn.bootcss.com/bootstrap-validator/0.5.3/js/bootstrapValidator.min.js"></script>

步骤2:编写HTML代码

编写需要验证的表单的HTML代码,并给需要验证的表单控件添加相应的验证规则,如下所示:

<form id="myForm" action="#" method="post">
  <div class="form-group">
    <label for="username">用户名:</label>
    <input type="text" class="form-control" name="username" id="username" placeholder="请输入用户名" 
           data-bv-notempty="true" data-bv-notempty-message="用户名不能为空" 
           data-bv-stringlength="true" data-bv-stringlength-min="3" data-bv-stringlength-max="10" 
           data-bv-stringlength-message="用户名长度必须在3-10个字符之间">
  </div>
  <div class="form-group">
    <label for="password">密码:</label>
    <input type="password" class="form-control" name="password" id="password" placeholder="请输入密码" 
           data-bv-notempty="true" data-bv-notempty-message="密码不能为空" 
           data-bv-identical="true" data-bv-identical-field="confirmPassword" 
           data-bv-identical-message="两次输入的密码不一致">
  </div>
  <div class="form-group">
    <label for="confirmPassword">确认密码:</label>
    <input type="password" class="form-control" name="confirmPassword" id="confirmPassword" placeholder="请确认密码" 
           data-bv-notempty="true" data-bv-notempty-message="确认密码不能为空" 
           data-bv-identical="true" data-bv-identical-field="password" 
           data-bv-identical-message="两次输入的密码不一致">
  </div>
  <button type="submit" class="btn btn-primary">提交</button>
</form>

在以上代码中,我们给每一个需要验证的表单控件添加了相应的data-bv-*属性,这些属性是用来指定验证规则的。例如,data-bv-notempty="true"指定此表单控件不能为空。

步骤3:初始化BootstrapValidator

在页面加载完成后,需要对表单进行初始化。在初始化过程中,我们需要指定表单的ID以及相应的验证规则,具体代码如下:

$(document).ready(function() {
  $('#myForm').bootstrapValidator({
    message: '输入无效',  // 默认的提示消息
    feedbackIcons: {  // 根据验证结果显示的图标
      valid: 'glyphicon glyphicon-ok',
      invalid: 'glyphicon glyphicon-remove',
      validating: 'glyphicon glyphicon-refresh'
    },
    fields: {  // 每个表单控件的验证规则
      username: {
        validators: {
          notEmpty: {
            message: '用户名不能为空'
          },
          stringLength: {
            min: 3,
            max: 10,
            message: '用户名长度必须在3-10个字符之间'
          }
        }
      },
      password: {
        validators: {
          notEmpty: {
            message: '密码不能为空'
          },
          identical: {
            field: 'confirmPassword',
            message: '两次输入的密码不一致'
          }
        }
      },
      confirmPassword: {
        validators: {
          notEmpty: {
            message: '确认密码不能为空'
          },
          identical: {
            field: 'password',
            message: '两次输入的密码不一致'
          }
        }
      }
    }
  })
})

在以上代码中,我们指定了每个表单控件的验证规则,并且可以根据需要自定义提示消息和图标。

示例

示例1:实现手机号码验证

下面是一个实现手机号码验证的示例:

<form id="myForm" action="#" method="post">
  <div class="form-group">
    <label for="phone">手机号码:</label>
    <input type="text" class="form-control" name="phone" id="phone" placeholder="请输入手机号码" 
           data-bv-notempty="true" data-bv-notempty-message="手机号码不能为空" 
           data-bv-regexp="true" data-bv-regexp-regexp="^1[3|4|5|7|8][0-9]{9}$" 
           data-bv-regexp-message="手机号码格式不正确">
  </div>
  <button type="submit" class="btn btn-primary">提交</button>
</form>

在上面的示例中,我们给手机号码输入框添加了data-bv-regexp属性,用来指定验证规则。其中,data-bv-regexp-regexp="^1[3|4|5|7|8][0-9]{9}$"指定手机号码必须符合以1开头,第二个数字为3、4、5、7、8中的一个,后面跟着9位数字的规则。

示例2:添加自定义的验证规则

下面是一个添加自定义的验证规则的示例:

// 添加一个自定义的表单验证规则
$.fn.bootstrapValidator.validators.idcard = {
  validate: function(validator, $field, options) {
    var value = $field.val();
    var regex = /^\d{15}(\d{2}[A-Za-z0-9])?$/;
    if (!regex.test(value))
      return {
        valid: false,
        message: '身份证号码格式不正确'
      };
    var idcardArray = value.split('');
    var areaMap = {
      11: '北京',
      12: '天津',
      13: '河北',
      14: '山西',
      15: '内蒙古',
      21: '辽宁',
      22: '吉林',
      23: '黑龙江',
      31: '上海',
      32: '江苏',
      33: '浙江',
      34: '安徽',
      35: '福建',
      36: '江西',
      37: '山东',
      41: '河南',
      42: '湖北',
      43: '湖南',
      44: '广东',
      45: '广西',
      46: '海南',
      50: '重庆',
      51: '四川',
      52: '贵州',
      53: '云南',
      54: '西藏',
      61: '陕西',
      62: '甘肃',
      63: '青海',
      64: '宁夏',
      65: '新疆',
      71: '台湾',
      81: '香港',
      82: '澳门',
      91: '国外'
    };
    var weight = [
      7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2
    ];
    var checkCode = [
      '1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'
    ];
    var sum = 0;
    for (var i = 0; i < 17; i++) {
      sum += parseInt(idcardArray[i]) * weight[i];
    }
    var areaCode = value.substr(0, 2);
    if (areaMap.hasOwnProperty(areaCode)) {
      var year = parseInt(value.substr(6, 4));
      var month = parseInt(value.substr(10, 2));
      var day = parseInt(value.substr(12, 2));
      var birthday = new Date(year, month - 1, day);
      var today = new Date();
      var age = today.getFullYear() - year;
      if (birthday.getMonth() !== month - 1 || birthday.getDate() !== day)
        return {
          valid: false,
          message: '身份证号码中的日期信息不正确'
        };
      if (age < 0 || age > 150)
        return {
          valid: false,
          message: '身份证号码中的年龄信息不正确'
        };
      if (options && options.minAge && age < options.minAge)
          return {
            valid: false,
            message: '必须大于等于' + options.minAge + '岁'
          };
    } else {
      return {
        valid: false,
        message: '身份证号码中的区域信息不正确'
      };
    }
    if (checkCode[sum % 11] !== value.substr(17, 1))
      return {
        valid: false,
        message: '身份证号码校验码不正确'
      };
    return {
      valid: true
    };
  }
};

// 在表单验证器中使用自定义的验证规则
$(document).ready(function() {
  $('#myForm').bootstrapValidator({
    message: '输入无效',
    feedbackIcons: {
      valid: 'glyphicon glyphicon-ok',
      invalid: 'glyphicon glyphicon-remove',
      validating: 'glyphicon glyphicon-refresh'
    },
    fields: {
      idcard: {
        validators: {
          notEmpty: {
            message: '身份证号码不能为空'
          },
          idcard: {  // 指定使用自定义的验证规则
            minAge: 18  // 自定义的验证规则可以使用options参数传递任意数据
          }
        }
      }
    }
  })
})

在上面的示例中,我们添加了一个自定义的表单验证规则"idcard",并且在表单验证器中使用了该规则来验证身份证号码。在添加规则的过程中我们需要编写validate方法,该方法的参数包括validator(当前的表单验证器)、$field(需要验证的表单控件)、options(可选,可以传递任意数据,用于后面的验证过程)。

以上就是BootstrapValidator的简单使用方法和示例,希望能对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Bootstrap简单实用的表单验证插件BootstrapValidator用法实例详解 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • window.location.href = window.location.href 跳转无反应 a超链接onclick事件写法

    实现网页跳转一般有两种方式:使用链接元素(<a>)或通过JavaScript修改window.location属性。但有时候,这两种方式都可能失败,如当链接元素的href属性值是JavaScript时,点击该链接时,页面不会发生跳转。或是在使用JavaScript的window.location.href属性跳转的过程中,我们想要弹出提示框或者执…

    JavaScript 2023年6月11日
    00
  • JavaScript中访问id对象 属性的方式访问属性(实例代码)

    JavaScript中访问id对象属性的方式,常用的有两种方法: DOM和jQuery。下面将分别介绍这两种方法的实现。 使用DOM访问id对象属性 DOM(Document Object Model) 是一种树状结构,它把HTML文档看作是一个由节点和对象组成的树形结构,通过DOM可以对HTML文档进行访问和操作。在DOM上访问id对象属性,可以使用doc…

    JavaScript 2023年5月27日
    00
  • es6 字符串String的扩展(实例讲解)

    下面是关于“ES6 字符串 String 的扩展(实例讲解)”的完整攻略: ES6 字符串 String 的扩展 ES6 对字符串 String 类型进行了很多扩展,本文中我们将分别介绍模板字符串、标签模板以及字符串相关实例方法。 模板字符串 模板字符串是ES6新引入的一种字符串,可以在其中插入变量,同时还可以进行字符串拼接,并且支持换行。 字符串拼接 使用…

    JavaScript 2023年5月28日
    00
  • 在vue项目中利用popstate处理页面返回的操作介绍

    在Vue项目中,可以利用 popstate 事件来处理页面返回的操作。下面详细介绍利用 popstate 的具体步骤。 1. 理解popstate事件 popstate 事件是 HTML5 History API 的一部分,可以在浏览器的后退或前进按钮被点击时进行传递。当浏览器历史发生变化时, popstate 事件将被触发。 2. 注册popstate事件…

    JavaScript 2023年6月11日
    00
  • JS中的进制转换以及作用

    JS中的进制转换是非常重要的基础知识之一,下面为您详细讲解。 进制转换的作用 在计算机领域中,进制转换是一项非常重要的操作,它可以将不同进制的数字之间互相转换。通常我们所见到的数字都是十进制的(使用10个数字0~9),但是在计算机内部,数字常常需要使用其他进制进行表示,如二进制、八进制、十六进制等。在进行网络通讯、文件存储以及数据传输等时,进制转换都是一个极…

    JavaScript 2023年5月19日
    00
  • 总结js函数相关知识点

    以下是总结 JavaScript 函数相关知识点的攻略: JavaScript 函数基础 定义函数 function funcName(param1, param2, …, paramN) { // 函数体 return expression; } 其中,funcName 是函数名,param1到paramN是参数,函数体中的 expression 是函…

    JavaScript 2023年5月27日
    00
  • 使用JS和canvas实现gif动图的停止和播放代码

    下面是使用JS和canvas实现gif动图的停止和播放的完整攻略: 1. 了解Canvas画布和Image对象 Canvas是HTML5新增的标签,允许通过JS脚本来实现动态绘制图像。而Image对象则是JS中常见的图像对象,可以用于显示一张图片。 2. 载入GIF动图并绘制到Canvas画布上 使用Image对象来载入本地存储路径下的GIF动图文件,并将其…

    JavaScript 2023年6月10日
    00
  • js实现简单的抽奖系统

    实现简单的抽奖系统可以分为以下几个步骤: 1. 静态页面布局 首先需要设计一个静态页面,用来展示抽奖的内容和规则。这个页面可以使用HTML和CSS实现。在页面中需要包含以下元素: 抽奖的标题 抽奖的内容 抽奖的规则 抽奖按钮 这些元素的样式可以根据需求进行自由设计。 2. 编写抽奖的逻辑 在页面布局完成后,需要使用JavaScript编写抽奖的逻辑。可以定义…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部