bootstrapValidator--表单校验

Posted on 2019-07-29 16:34  嗷呜~  阅读(1204)  评论(0编辑  收藏  举报

关于表单校验 要依次引入

  <link rel="stylesheet" href="./bootstrap/css/bootstrap.min.css">
    
    <!-- 表单校验 -->
    <link rel="stylesheet" href="./bootstrap-validator/css/bootstrapValidator.min.css">
 <script src="./jquery/jquery.min.js"></script>
 <script src="./bootstrap/js/bootstrap.min.js"></script>
 <script src="./bootstrap-validator/js/bootstrapValidator.min.js"></script>
<!-- id :和后面的校验匹配 -->
  <form class="form-horizontal" id="addForm">
        <div class="form-group">
             <label for="name" class="col-sm-2 control-label">姓名:</label>
             <div class="col-sm-10">
                  <input type="text" name="username" data-bv-notempty="true"
                     data-bv-notempty-message="不能为空" class="form-control" id="username" placeholder="">
             </div>
        </div>
        <div class="form-group">
             <label for="name" class="col-sm-2 control-label">性别:</label>
             <div class="col-sm-10">
                  <!-- <input type="text" class="form-control" id="name" placeholder=""> -->
                  <label><input type="radio" name="sex" value="男"></label>
                  <label><input type="radio" name="sex" value="女"></label>
             </div>
        </div>
                       
        <div class="form-group">
             <label for="creditCard" class="col-sm-2 control-label">身份证:</label>
             <div class="col-sm-10">
                  <input type="creditCard" name="creditCard" class="form-control" id="creditCard"
                         placeholder="">
             </div>
        </div>
        <div class="form-group">
             <label for="phone" class="col-sm-2 control-label">电话:</label>
             <div class="col-sm-10">
                  <input type="phone" name="phone" class="form-control" id="phone" placeholder="">
             </div>
        </div>

        <div class="form-group">
             <label for="inputEmail3" class="col-sm-2 control-label">邮箱:</label>
             <div class="col-sm-10">
                  <input type="text" name="email" class="form-control" id="inputEmail3" placeholder="">
             </div>
        </div>
        <div class="form-group">
             <label for="register" class="col-sm-2 control-label">状态:</label>
             <div class="col-sm-10">
                  <!-- <input type="text" class="form-control" id="phone" placeholder=""> -->
                  <select name="addStatus" id="register" class="form-control">
                          <option value="">未注册</option>
                          <option value="">已注册</option>
                          <option value="">休学</option>
                  </select>
             </div>
        </div>
        <div class="form-group">
             <div class="col-sm-offset-3 col-sm-6">
                  <button type="reset" class="btn btn-default pull-left">重置</button>
                  <button type="submit" class="btn btn-primary pull-right">保存</button>
             </div>
        </div>
  </form>
 $('#addForm').bootstrapValidator({
        message: 'This value is not valid',
        // 配置校验图标
        feedbackIcons: {
            valid: 'glyphicon glyphicon-ok',    // 校验成功
            invalid: 'glyphicon glyphicon-remove',   // 校验失败
            validating: 'glyphicon glyphicon-refresh'  // 校验中
        },
        // 配置校验字段   (给input设置 name 值)
        fields: {
            username: {
                message: '用户名验证失败',
                validators: {
                    notEmpty: {
                        message: '用户名不能为空'
                    }
                }
            },
            email: {
                validators: {
                    // notEmpty: {
                    //     message: '邮箱地址不能为空'
                    // }

                    regexp: { //正则表达式
                        //    邮箱
                        // regexp: /^\w+@\w+(\.[a-z]+){1,2}$/,
                        regexp: /^(\w+@\w+(\.[a-z]+){1,2}\;)*\w+@\w+(\.[a-z]+){1,2}$/,
                        message: '邮箱格式不正确'
                    },
                }
            },
            phone: {
                message: '电话验证失败',
                validators: {
                    // notEmpty: {
                    //     message: '电话不能为空'
                    // },
                    regexp: { //正则表达式
                        //*星号表示可以重复任意次,也就是可以有多个号码
                        // (13|15|18)\d{9}$ 最后一个用来匹配没有分号的号码 
                        // 最后一个号码不能有分号
                         regexp: /^((13|15|18)\d{9}\;)*(13|15|18)\d{9}$/,
                        //以13,15,18开头的手机号,共11位,如果多个手机号中间用英文的;(分号)分开
                        message: '号码格式不正确'
                    },
                }
            },
            creditCard: {
                message: '身份证验证失败',
                validators: {
                    notEmpty: {
                        message: '身份证不能为空'
                    },
                    regexp: { //正则表达式
                        // 身份证号码为15位或者18位,15位时全为数字,
                        // 18位前17位为数字,最后一位是校验位,可能为数字或字符X  
                        regexp: /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/,
                        message: '身份证格式不正确'
                    },
                }
            },

        }
    });
2. 校验成功后, 会触发一个事件, 表单校验成功事件
* 默认是会提交表单的, 页面就跳转了,
* 我们需要注册表单校验成功事件, 在成功事件中, 阻止默认的提交, 通过 ajax 提交
// $('#addForm').on('success.form.bv', function (e) {
// // 阻止默认的提交
// console.log(123)
// e.preventDefault(); // 阻止默认的提交

// $.ajax({
// type: "post",
// url: "",
// data: $('#addForm').serialize(),
// dataType: 'json',
// success: function (info) {
// console.log(info);

// }
// })
// })
$('#addForm').data("bootstrapValidator").resetForm(true)