BootstrapValidator超详细教程(推荐)

BootstrapValidator超详细教程(推荐)

简介

BootstrapValidator 是一个针对 Bootstrap 的表单验证插件,能够在客户端对表单进行验证,使得用户在提交表单前能够方便地发现并修复错误。BootstrapValidator 具备以下特点:

  • 友好的 UI 体验
  • 支持多种校验方式,如正则表达式、长度等
  • 支持 Ajax 校验
  • 支持多语言

安装

安装 BootstrapValidator 可以通过多种方式,如下载压缩包或使用 npm 安装。这里我们介绍使用 CDN 引入的方式。

在 HTML 中引入 BootstrapValidator 的 CSS 和 JS 文件,以及 jQuery 和 Bootstrap 的文件:

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery.bootstrapvalidator/0.5.3/css/bootstrapValidator.min.css" />
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.bootstrapvalidator/0.5.3/js/bootstrapValidator.min.js"></script>

使用

在 HTML 表单中添加 data 属性,如 data-bv-*,然后使用 JavaScript 初始化 BootstrapValidator。以下是一个简单的例子,展示了如何在表单中验证用户名和密码:

HTML 代码:

<form id="myForm">
  <div class="form-group">
    <label>用户名</label>
    <input type="text" class="form-control" name="username" required data-bv-remote url="/checkUserName" data-bv-remote-message="该用户名已被注册,请更换用户名" />
  </div>
  <div class="form-group">
    <label>密码</label>
    <input type="password" class="form-control" name="password" required data-bv-stringlength data-bv-stringlength-min="6" data-bv-stringlength-max="16" />
  </div>
  <button type="submit" class="btn btn-primary">提交</button>
</form>

JavaScript 代码:

$('#myForm').bootstrapValidator({
  fields: {
    username: {
      validators: {
        notEmpty: {
          message: '用户名不能为空'
        },
        remote: {
          message: '该用户名已被注册,请更换用户名',
          url: '/checkUserName',
          type: 'POST'
        }
      }
    },
    password: {
      validators: {
        notEmpty: {
          message: '密码不能为空'
        },
        stringLength: {
          min: 6,
          max: 16,
          message: '密码长度必须在 6 到 16 个字符之间'
        }
      }
    }
  }
})

上面的代码中,我们使用了 data-bv-* 属性实现了客户端验证的功能,并使用了 JavaScript 初始化了 BootstrapValidator,设置了验证规则和提示。其中,remote 规则可以进行 Ajax 校验,在 url 参数中设置远程校验的 URL。

示例

这里提供两个示例,一个是基本的表单验证,另一个是带有 Ajax 校验的表单验证。

基本的表单验证

通过 BootstrapValidator 官网 提供的基本示例,演示一个表单验证的案例。

HTML 代码:

<form id="myForm" class="form-horizontal">
  <div class="form-group">
    <label class="col-sm-3 control-label">Full name *</label>
    <div class="col-sm-7">
      <input type="text" class="form-control" name="firstName" placeholder="First name" />
    </div>
    <div class="col-sm-7 col-sm-offset-3">
      <input type="text" class="form-control" name="lastName" placeholder="Last name" />
    </div>
  </div>

  <div class="form-group">
    <label class="col-sm-3 control-label">Username *</label>
    <div class="col-sm-7">
      <input type="text" class="form-control" name="username" />
    </div>
  </div>

  <div class="form-group">
    <label class="col-sm-3 control-label">Email address *</label>
    <div class="col-sm-7">
      <input type="text" class="form-control" name="email" />
    </div>
  </div>

  <div class="form-group">
    <label class="col-sm-3 control-label">Password *</label>
    <div class="col-sm-7">
      <input type="password" class="form-control" name="password" />
    </div>
  </div>

  <div class="form-group">
    <label class="col-sm-3 control-label">Re-enter password *</label>
    <div class="col-sm-7">
      <input type="password" class="form-control" name="confirmPassword" />
    </div>
  </div>

  <div class="form-group">
    <div class="col-sm-offset-3 col-sm-9">
      <div class="checkbox">
        <label><input type="checkbox" name="agree" /> Agree with the terms and conditions</label>
      </div>
    </div>
  </div>

  <div class="form-group">
    <div class="col-sm-offset-3 col-sm-9">
      <button type="submit" class="btn btn-primary">Register</button>
    </div>
  </div>
</form>

JavaScript 代码:

$('#myForm').bootstrapValidator({
  message: 'This value is not valid',
  feedbackIcons: {
    valid: 'glyphicon glyphicon-ok',
    invalid: 'glyphicon glyphicon-remove',
    validating: 'glyphicon glyphicon-refresh'
  },
  fields: {
    firstName: {
      message: 'The first name is not valid',
      validators: {
        notEmpty: {
          message: 'The first name is required and cannot be empty'
        }
      }
    },
    lastName: {
      message: 'The last name is not valid',
      validators: {
        notEmpty: {
          message: 'The last name is required and cannot be empty'
        }
      }
    },
    username: {
      message: 'The username is not valid',
      validators: {
        notEmpty: {
          message: 'The username is required and cannot be empty'
        },
        stringLength: {
          min: 6,
          max: 30,
          message: 'The username must be more than 6 and less than 30 characters long'
        },
        regexp: {
          regexp: /^[a-zA-Z0-9_\.]+$/,
          message: 'The username can only consist of alphabetical, number, dot and underscore'
        }
      }
    },
    email: {
      validators: {
        notEmpty: {
          message: 'The email address is required and cannot be empty'
        },
        emailAddress: {
          message: 'The input is not a valid email address'
        }
      }
    },
    password: {
      validators: {
        notEmpty: {
          message: 'The password is required and cannot be empty'
        },
        stringLength: {
          min: 6,
          message: 'The password must be more than 6 characters long'
        },
        different: {
          field: 'username',
          message: 'The password cannot be the same as username'
        }
      }
    },
    confirmPassword: {
      validators: {
        notEmpty: {
          message: 'The confirm password is required and cannot be empty'
        },
        identical: {
          field: 'password',
          message: 'The password and confirm password are not the same'
        }
      }
    },
    agree: {
      validators: {
        notEmpty: {
          message: 'You must agree with the terms and conditions'
        }
      }
    }
  }
});

这个例子演示了输入框的实时验证、异步验证、即时反馈等功能。

带有 Ajax 校验的表单验证

在表单验证中,有时候需要通过 Ajax 获取数据并进行校验。这个例子演示了如何使用 BootstrapValidator 进行 Ajax 校验。

HTML 代码:

<form id="ajaxForm" method="post" class="form-horizontal" action="submitAjax.php">
  <div class="form-group">
    <label class="col-sm-3 control-label">用户名</label>
    <div class="col-sm-7">
      <input type="text" class="form-control" name="username" />
    </div>
  </div>

  <div class="form-group">
    <label class="col-sm-3 control-label">电子邮箱</label>
    <div class="col-sm-7">
      <input type="email" class="form-control" name="email" />
    </div>
  </div>

  <button type="submit" class="btn btn-primary">提交</button>
</form>

在 JavaScript 中发起 Ajax 校验,并通过 BootstrapValidator 进行验证:

var submitUrl = "submitAjax.php"; // 真实提交地址
$('#ajaxForm').bootstrapValidator({
  live: 'enabled',
  submitButtons: 'button[type="submit"]',
  message: 'This value is not valid',
  feedbackIcons: {
    valid: 'glyphicon glyphicon-ok',
    invalid: 'glyphicon glyphicon-remove',
    validating: 'glyphicon glyphicon-refresh'
  },
  fields: {
    username: {
      message: 'The username is not valid',
      validators: {
        notEmpty: {
          message: 'The username is required and cannot be empty'
        },
        remote: {
          message: 'The username is not available',
          url: submitUrl,
          type: 'POST',
          data: {
            checkType: 'username'
          }
        }
      }
    },
    email: {
      validators: {
        notEmpty: {
          message: 'The email address is required and cannot be empty'
        },
        emailAddress: {
          message: 'The input is not a valid email address'
        },
        remote: {
          message: 'This email has been registered',
          url: submitUrl,
          type: 'POST',
          data: {
            checkType: 'email'
          }
        }
      }
    }
  }
});

在 submitAjax.php 文件中获取数据并进行校验:

<?php

if($_SERVER['REQUEST_METHOD'] === 'POST'){
    // 获取查询类型
    $checkType = isset($_POST['checkType']) ? $_POST['checkType'] : '';

    if ($checkType === 'username') {// 校验用户名
        $username = isset($_POST['username']) ? $_POST['username'] : '';
        if ($username === 'admin') {
            echo json_encode(['valid'=>false]);
        } else {
            echo json_encode(['valid'=>true]);
        }
    } elseif ($checkType === 'email') {// 校验电子邮件
        $email = isset($_POST['email']) ? $_POST['email'] : '';
        if ($email === 'admin@qq.com') {
            echo json_encode(['valid'=>false]);
        } else {
            echo json_encode(['valid'=>true]);
        }
    } else {
        echo json_encode(['valid'=>true]);
    }
}
?>

这个例子演示了如何结合 BootstrapValidator 和后端配合使用。在实际项目中,这种方式非常常见。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:BootstrapValidator超详细教程(推荐) - Python技术站

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

相关文章

  • CSS命名规范参考及书写注意事项

    CSS命名规范参考及书写注意事项 CSS命名规范是Web开发中非常重要的一部分,良好的命名规范可以提高代码的可读性和可维护性。本攻略将详细讲解CSS命名规范的参考及书写注意事项,包括命名规范的原则、命名规范的分类、命名规范的书写注意事项等,并提供两个示例说明。 1. 命名规范的原则 CSS命名规范的原则是简洁、明确、有意义。具体来说,应该遵循以下几个原则: …

    css 2023年5月18日
    00
  • 20个正则表达式必知(能让你少写1,000行代码)

    20个正则表达式必知(能让你少写1,000行代码) 1. 匹配Email地址 /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/ 该正则表达式可以匹配大部分的email地址,它的匹配规则如下: 首先是一到多个字母、数字、下划线或中划线 然后是一个 @ 符号 然后是一到多个字母、数字、下划线或中划线 然后是…

    css 2023年6月9日
    00
  • Vue.js每天必学之过渡与动画

    Vue.js每天必学之过渡与动画 基本概念 在Vue.js中,过渡和动画是两个常用的效果。可以通过Vue内置的transition动画组件和CSS过渡来轻松地实现这些效果。 在Vue.js中,过渡是指在元素插入或删除时,在控制台视图中添加一些淡入淡出或滑入滑出的过渡效果。而动画是指在元素插入或删除时,在页面中添加一类时间轴动画效果。 使用transition…

    css 2023年6月9日
    00
  • Bootstrap入门书籍之(五)导航条、分页导航

    关于“Bootstrap入门书籍之(五)导航条、分页导航”的完整攻略,我将详细讲解如下。 导航条 Bootstrap提供了导航条组件,可以方便地实现网页的导航功能。下面是使用Bootstrap实现导航条的步骤。 在html页面中引入Bootstrap的样式和脚本文件。可以在Bootstrap官网下载最新版本。 <link href="http…

    css 2023年6月10日
    00
  • Ext修改GridPanel数据和字体颜色、css属性等

    下面我将给出关于“Ext修改GridPanel数据和字体颜色、css属性等”的完整攻略,希望对您有所帮助。 一、修改GridPanel数据 1.1 修改GridPanel中单元格数据 GridPanel中单元格数据的修改可以使用setData方法,该方法用于修改单元格中对应字段的值。示例代码如下: // 创建GridPanel实例 var gridPanel…

    css 2023年6月9日
    00
  • 该不该使用ID选择器?浅谈对CSS的ID选择器的使用建议

    我来为大家详细讲解一下“该不该使用ID选择器?浅谈对CSS的ID选择器的使用建议”。 什么是ID选择器? ID选择器是CSS选择器的一种,用于选取具有特定ID属性的HTML元素。 在CSS中,我们使用#符号+ID名称的形式来表示ID选择器,例如:#header表示选取ID为header的HTML元素。 ID选择器的优缺点 优点: 精准度高:ID选择器的优点在…

    css 2023年6月9日
    00
  • 一篇文章教你学会js实现弹幕效果

    一篇文章教你学会JS实现弹幕效果 前言 随着互联网视频网站的兴起,弹幕效果越来越受到用户的喜爱。本文旨在通过一些简单易懂的示例,来教大家如何使用JavaScript实现弹幕效果。 实现原理 实现弹幕效果的原理其实很简单:将要发送的弹幕按照一定的速度从右侧飘到左侧。我们可以使用position: absolute来实现弹幕的绝对定位,再结合setInterva…

    css 2023年6月9日
    00
  • 动态的样式语言less语法详解之混合属性

    动态的样式语言less语法详解之混合属性 在less中,我们可以使用混合属性(Mixin)来定义一组css属性,这组属性可以被重复调用,不仅可以提高代码的复用率,还可以通过传递参数来动态生成样式,从而实现动态的样式。 定义混合属性 在less中,混合属性使用@mixin关键词定义。其语法格式如下: @mixin mixin-name { property1:…

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