美文网首页JAVA
BootstrapValidator-验证插件

BootstrapValidator-验证插件

作者: 刺風 | 来源:发表于2017-11-20 17:58 被阅读129次

一、使用须知

  1. 插件下载:https://github.com/nghuuphuoc/bootstrapvalidator
  2. API:http://bootstrapvalidator.votintsev.ru/api/
  3. 推荐:https://www.cnblogs.com/landeanfen/p/5035608.html

二、新手上路

1.在页面中引入相应的js和css,要知道bootstrap是基于jquery的,所以先引入jquery和bootstrap

<link rel="stylesheet" href="/css/bootstrap.min.css">
<link rel="stylesheet" href="/css/bootstrapValidator.min.css" >

<script type="text/javascript" src="/js/jquery.js"></script>
<script type="text/javascript" src="/js/bootstrap.js"></script>
<script type="text/javascript" src="/js/bootstrapValidator.min.js"></script>

好了,将上述的css和js引入到页面中就可以愉快的开发了。
2. html中的代码(这里只是为了举例拿用户名和邮箱示例一下):

<form id="form1" method="post" class="form-horizontal">
      <div class="form-group">
            <label class="col-lg-3 control-label">用户名:</label>
             <div class="col-lg-5">
                      <input type="text" class="form-control" name="username" />
             </div>
      </div>
      <div class="form-group">
             <label class="col-lg-3 control-label">邮箱:</label>
             <div class="col-lg-5">
                   <input type="text" class="form-control" name="email" />
             </div>
       </div>
      <div class="form-group">
             <div class="col-lg-9 col-lg-offset-3">
                  <button type="submit" class="btn btn-primary" name="signup" value="Sign up">提交</button>
             </div>
     </div>
</form>

注意:使用bootstrapValidator验证插件必须将表单里的组件包裹在<div class="form-group">这个标签中,并且一个需要验证的组件对应一个<div class="form-group">,这样提示信息才会高亮显示。
3. js中的代码

<script type="text/javascript">
$(document).ready(function() {
    $('#form1').bootstrapValidator({
        feedbackIcons: {
            valid: 'glyphicon glyphicon-ok',
            invalid: 'glyphicon glyphicon-remove',
            validating: 'glyphicon glyphicon-refresh'
        },
        fields: {
          'username': {
                message: '用户名无效',
                validators: {
                    notEmpty: {
                        message: '用户名不能为空'
                    },
                    stringLength: {
                        min: 6,
                        max: 30,
                        message: '用户名长度在6到30之间'
                    }
                }
            },
            'email': {
                validators: {
                    emailAddress: {
                        message: '请输入有效的邮箱格式'
                    }
                }
            }
        }
    });
});
</script>

注意:feedbackIcons是设置验证通过和不通过的图标的,fields是用来设置from中具体的表单元素验证的。

三、触类旁通

通过上面的方式我们可以轻松的对表单元素进行各种验证,但是上面这种写法确实分离我们验证的业务代码,但是实际开发中我们更喜欢将验证信息嵌在表单元素中,因为这样会更省时省力,直接copy改就可以了。那么BootstrapValidator这个插件是否支持在表单元素中直接去写呢,答案当然是肯定的。
1. html代码:

<form id="form1" method="post" class="form-horizontal">
      <div class="form-group">
            <label class="col-lg-3 control-label">用户名:</label>
             <div class="col-lg-5">
                      <input type="text" class="form-control" name="username" placeholder="请输入用户名"
                           required  data-bv-notempty-message="用户名称不能为空"
                           data-bv-stringlength="true" data-bv-stringlength-min="6"
                           data-bv-stringlength-max="30" data-bv-stringlength-message="用户名长度在6到30之间"/>
             </div>
      </div>
      <div class="form-group">
             <label class="col-lg-3 control-label">邮箱:</label>
             <div class="col-lg-5">
                   <input type="text" class="form-control" name="email" placeholder="请输入邮箱"
                data-bv-emailAddress="true" data-bv-emailAddress-message= '请输入有效的邮箱格式'    />
             </div>
       </div>
      <div class="form-group">
             <div class="col-lg-9 col-lg-offset-3">
                  <button type="submit" class="btn btn-primary" name="signup" value="Sign up">提交</button>
             </div>
     </div>
</form>

2. js代码:

<script type="text/javascript">
$(document).ready(function() {
    $('#form1').bootstrapValidator({
        feedbackIcons: {
            valid: 'glyphicon glyphicon-ok',
            invalid: 'glyphicon glyphicon-remove',
            validating: 'glyphicon glyphicon-refresh'
        }
    });
});
</script>

3. 不用submit提交,使用点击事件触发校验
页面上有个按钮id为btn_save_id,代码如下

<script type="text/javascript">
$(document).ready(function() {
   $("#btn_save_id").click(function(){
        $('#form1').bootstrapValidator('validate');
        if($('#form1').data('bootstrapValidator').isValid()) {
            //验证通过,执行后续操作
        }
    });
});
</script>

四、牛刀小试

下面是我碰到的一些验证,可以将验证代码直接嵌入到表单元素中
1. 正整数(正则)验证
pattern="^\+?[0-9][0-9]*$" data-bv-regexp-message="请输入正确的数字"
2. 数值类型验证
data-bv-numeric="true" data-bv-numeric-message="请输入数值类型"
3. 长度验证
data-bv-stringlength="true" data-bv-stringlength-min="1"
data-bv-stringlength-max="20" data-bv-stringlength-message="长度最大为20个字符"
4. 自定义验证规则(json验证)
data-bv-callback="true" data-bv-callback-callback="validByJsonFn" data-bv-callback-message="请输入可识别的JSON格式"

<script type="text/javascript">
//验证是否是{"key":"value"}这种json格式的方法
function validByJsonFn(value) {
    var bool=false;
    try {
        if(value!==""){
            if(value.length>8&&value.indexOf("[")!=-1&&value.indexOf("]")!=-1
                &&value.indexOf("{")!=-1&&value.indexOf("}")!=-1&&value.indexOf(":")!=-1){
               var myjson= JSON.parse(value);
              bool=true;
            }else{
                bool=false;
            }
        }else{
            bool=true;
        }
    } catch (e) {
        bool=false;
    }
    return bool;
}
</script>

5. 表单元素二填一验证(两个input填一个即可)

 <div class="form-group">
    <label for="description" class="col-sm-3 control-label">每天投票数量:</label>
    <div class="col-sm-8">
        <input type="text"  class="form-control" id="votesPerDay" name="votesPerDay" 
           data-bv-callback="true" data-bv-callback-callback="validByVotingFn"
           data-bv-callback-message="每天投票数量和总共投票数量必须选填一个"
           data-bv-numeric="true" data-bv-numeric-message="请输入数值类型"
           data-bv-stringlength="true" data-bv-stringlength-min="1"
           data-bv-stringlength-max="11" data-bv-stringlength-message="长度最大为11个字符"/>
    </div>
</div>
<div class="form-group">
    <label for="description" class="col-sm-3 control-label">总共投票数量:</label>
    <div class="col-sm-8">
        <input type="text"  class="form-control" id="totalVotes" name="totalVotes" 
            data-bv-callback="true" data-bv-callback-callback="validByVotingFn" 
            data-bv-callback-message="每天投票数量和总共投票数量必须选填一个"
            data-bv-numeric="true" data-bv-numeric-message="请输入数值类型"
            data-bv-stringlength="true" data-bv-stringlength-min="1"
            data-bv-stringlength-max="11" data-bv-stringlength-message="长度最大为11个字符"/>
    </div>
</div>

js代码:

<script type="text/javascript">
function validByVotingFn(value,e,v){
    var num1=$("#votesPerDay").val();
    var num2=$("#totalVotes").val();
    var bool=false;
    if(num1||num2){
        $("#totalVotes").attr("disabled",false);
        $("#votesPerDay").attr("disabled",false);
        $("#form1").data("bootstrapValidator").updateStatus("votesPerDay","NOT_VALIDATED",null);
        $("#form1").data("bootstrapValidator").updateStatus("totalVotes","VALIDATED",null);
       bool=true;
    }
    if(num1&&num1.length>0){
        $("#totalVotes").val("").attr("disabled",true);

    }else{
        $("#totalVotes").attr("disabled",false);
    }
    if(num2&&num2.length>0){
        $("#votesPerDay").val("").attr("disabled",true);
    }else{
        $("#votesPerDay").attr("disabled",false);
    }
    return bool;
}
</script>

6. 还有很多很多验证,不过常用的可能基本上也就这些了,后面碰到我再补充上来

五、纵横江湖

重置某个字段验证信息
$("#form3").data("bootstrapValidator").updateStatus("answerList","VALIDATED",null);
注意:第一个参数为表单元素name,第二个参数可以是NOT_VALIDATED,VALIDATING,INVALID或者VALID,第三个参数验证程序名称,如果null该方法更新所有验证器的有效性结果。

相关文章

  • BootstrapValidator-验证插件

    一、使用须知 插件下载:https://github.com/nghuuphuoc/bootstrapvalida...

  • 简介

    jQuery-validation | 基于jQuery验证表单前端插件主要验证用户输入信息 注意:该插件不会验证...

  • jQuery常用控件

    1、表单验证插件——validate validate插件自动根据规则进入验证,并显示提示信息,验证成功后,表...

  • jquery 插件

    Validation : 表单验证插件 jquery form: 表单插件 simpleModal; 模态窗口插件...

  • 验证码插件使用帮助文档

    验证码插件使用帮助文档 wmcode UiBot 验证码 该验证码插件为《完美验证码识别系统V3.2.1》的pyt...

  • 第 9 章 jQuery 常用插件

    表单验证插件—— validate 该插件自带包含必填、数字、URL 在内容的验证规则,即时显示异常信息,此外,还...

  • jQuery + SpringMVC 集成极验验证码插件

    极验有一款行为验证的插件,其实就是个验证码插件,包括滑块和点选的验证方式,这里记录一下如何接入基于 jQuery ...

  • 如何开发一个自定义的MySQL插件

    MySQL自带了很多插件,比如半同步插件、审计插件、密码验证插件等等,甚至MySQL存储引擎也是以插件方式实现的。...

  • 【已解决】使用Cocoapods-svn插件无法正常验证

    【已解决】使用Cocoapods-svn插件无法正常验证 问题原因 下面的验证方法无效 解决办法 需要使用插件的方...

  • LuaIde

    重点:购买前请注意本插件需要联网进行用户验证. 购买前请注意本插件需要联网进行用户验证. 购买前请...

网友评论

    本文标题:BootstrapValidator-验证插件

    本文链接:https://www.haomeiwen.com/subject/fpmvvxtx.html