zoukankan      html  css  js  c++  java
  • Bootstrap表单验证插件bootstrapValidator使用方法整理

    插件下载:http://www.jq22.com/jquery-info522

    插件介绍

    先上一个图:


    下载地址:https://github.com/nghuuphuoc/bootstrapvalidator

    使用方法:http://www.cnblogs.com/huangcong/p/5335376.html

    使用提示

    中文化:
    下载插件后,将jsootstrapValidatorlanguagezh_CN.js 引入文件,即实现中文化

    提交前验证表单:
    更丰富一点的表单验证例子:http://www.jq22.com/yanshi522,直接上代码:

    1 <!DOCTYPE html>
      2 <html>
      3 <head>
      4     <title>BootstrapValidator demo</title>
      5 
      6     <link rel="stylesheet" href="vendor/bootstrap/css/bootstrap.css"/>
      7     <link rel="stylesheet" href="dist/css/bootstrapValidator.css"/>
      8 
      9     <!-- Include the FontAwesome CSS if you want to use feedback icons provided by FontAwesome -->
     10     <!--<link rel="stylesheet" href="http://netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" />-->
     11 
     12     <script type="text/javascript" src="vendor/jquery/jquery-1.10.2.min.js"></script>
     13     <script type="text/javascript" src="vendor/bootstrap/js/bootstrap.min.js"></script>
     14     <script type="text/javascript" src="dist/js/bootstrapValidator.js"></script>
     15 </head>
     16 <body>
     17     <div class="container">
     18         <div class="row">
     19             <!-- form: -->
     20             <section>
     21                 <div class="col-lg-8 col-lg-offset-2">
     22                     <div class="page-header">
     23                         <h2>Sign up</h2>
     24                     </div>
     25 
     26                     <form id="defaultForm" method="post" class="form-horizontal" action="target.php">
     27                         <div class="form-group">
     28                             <label class="col-lg-3 control-label">Full name</label>
     29                             <div class="col-lg-4">
     30                                 <input type="text" class="form-control" name="firstName" placeholder="First name" />
     31                             </div>
     32                             <div class="col-lg-4">
     33                                 <input type="text" class="form-control" name="lastName" placeholder="Last name" />
     34                             </div>
     35                         </div>
     36 
     37                         <div class="form-group">
     38                             <label class="col-lg-3 control-label">Username</label>
     39                             <div class="col-lg-5">
     40                                 <input type="text" class="form-control" name="username" />
     41                             </div>
     42                         </div>
     43 
     44                         <div class="form-group">
     45                             <label class="col-lg-3 control-label">Email address</label>
     46                             <div class="col-lg-5">
     47                                 <input type="text" class="form-control" name="email" />
     48                             </div>
     49                         </div>
     50 
     51                         <div class="form-group">
     52                             <label class="col-lg-3 control-label">Password</label>
     53                             <div class="col-lg-5">
     54                                 <input type="password" class="form-control" name="password" />
     55                             </div>
     56                         </div>
     57 
     58                         <div class="form-group">
     59                             <label class="col-lg-3 control-label">Retype password</label>
     60                             <div class="col-lg-5">
     61                                 <input type="password" class="form-control" name="confirmPassword" />
     62                             </div>
     63                         </div>
     64 
     65                         <div class="form-group">
     66                             <label class="col-lg-3 control-label">Gender</label>
     67                             <div class="col-lg-5">
     68                                 <div class="radio">
     69                                     <label>
     70                                         <input type="radio" name="gender" value="male" /> Male
     71                                     </label>
     72                                 </div>
     73                                 <div class="radio">
     74                                     <label>
     75                                         <input type="radio" name="gender" value="female" /> Female
     76                                     </label>
     77                                 </div>
     78                                 <div class="radio">
     79                                     <label>
     80                                         <input type="radio" name="gender" value="other" /> Other
     81                                     </label>
     82                                 </div>
     83                             </div>
     84                         </div>
     85 
     86                         <div class="form-group">
     87                             <label class="col-lg-3 control-label">Birthday</label>
     88                             <div class="col-lg-5">
     89                                 <input type="text" class="form-control" name="birthday" /> (YYYY/MM/DD)
     90                             </div>
     91                         </div>
     92 
     93                         <div class="form-group">
     94                             <label class="col-lg-3 control-label">Languages</label>
     95                             <div class="col-lg-5">
     96                                 <div class="checkbox">
     97                                     <label>
     98                                         <input type="checkbox" name="languages[]" value="english" /> English
     99                                     </label>
    100                                 </div>
    101                                 <div class="checkbox">
    102                                     <label>
    103                                         <input type="checkbox" name="languages[]" value="french" /> French
    104                                     </label>
    105                                 </div>
    106                                 <div class="checkbox">
    107                                     <label>
    108                                         <input type="checkbox" name="languages[]" value="german" /> German
    109                                     </label>
    110                                 </div>
    111                                 <div class="checkbox">
    112                                     <label>
    113                                         <input type="checkbox" name="languages[]" value="russian" /> Russian
    114                                     </label>
    115                                 </div>
    116                                 <div class="checkbox">
    117                                     <label>
    118                                         <input type="checkbox" name="languages[]" value="other" /> Other
    119                                     </label>
    120                                 </div>
    121                             </div>
    122                         </div>
    123 
    124                         <div class="form-group">
    125                             <label class="col-lg-3 control-label">Programming Languages</label>
    126                             <div class="col-lg-5">
    127                                 <div class="checkbox">
    128                                     <label>
    129                                         <input type="checkbox" name="programs[]" value="net" /> .Net
    130                                     </label>
    131                                 </div>
    132                                 <div class="checkbox">
    133                                     <label>
    134                                         <input type="checkbox" name="programs[]" value="java" /> Java
    135                                     </label>
    136                                 </div>
    137                                 <div class="checkbox">
    138                                     <label>
    139                                         <input type="checkbox" name="programs[]" value="c" /> C/C++
    140                                     </label>
    141                                 </div>
    142                                 <div class="checkbox">
    143                                     <label>
    144                                         <input type="checkbox" name="programs[]" value="php" /> PHP
    145                                     </label>
    146                                 </div>
    147                                 <div class="checkbox">
    148                                     <label>
    149                                         <input type="checkbox" name="programs[]" value="perl" /> Perl
    150                                     </label>
    151                                 </div>
    152                                 <div class="checkbox">
    153                                     <label>
    154                                         <input type="checkbox" name="programs[]" value="ruby" /> Ruby
    155                                     </label>
    156                                 </div>
    157                                 <div class="checkbox">
    158                                     <label>
    159                                         <input type="checkbox" name="programs[]" value="python" /> Python
    160                                     </label>
    161                                 </div>
    162                                 <div class="checkbox">
    163                                     <label>
    164                                         <input type="checkbox" name="programs[]" value="javascript" /> Javascript
    165                                     </label>
    166                                 </div>
    167                             </div>
    168                         </div>
    169 
    170                         <div class="form-group">
    171                             <label class="col-lg-3 control-label" id="captchaOperation"></label>
    172                             <div class="col-lg-2">
    173                                 <input type="text" class="form-control" name="captcha" />
    174                             </div>
    175                         </div>
    176 
    177                         <div class="form-group">
    178                             <div class="col-lg-9 col-lg-offset-3">
    179                                 <button type="submit" class="btn btn-primary" name="signup" value="Sign up">Sign up</button>
    180                                 <button type="submit" class="btn btn-primary" name="signup2" value="Sign up 2">Sign up 2</button>
    181                                 <button type="button" class="btn btn-info" id="validateBtn">Manual validate</button>
    182                                 <button type="button" class="btn btn-info" id="resetBtn">Reset form</button>
    183                             </div>
    184                         </div>
    185                     </form>
    186                 </div>
    187             </section>
    188             <!-- :form -->
    189         </div>
    190     </div>
    191 
    192 <script type="text/javascript">
    193 $(document).ready(function() {
    194     // Generate a simple captcha
    195     function randomNumber(min, max) {
    196         return Math.floor(Math.random() * (max - min + 1) + min);
    197     };
    198     $('#captchaOperation').html([randomNumber(1, 100), '+', randomNumber(1, 200), '='].join(' '));
    199 
    200     $('#defaultForm').bootstrapValidator({
    201 //        live: 'disabled',
    202         message: 'This value is not valid',
    203         feedbackIcons: {
    204             valid: 'glyphicon glyphicon-ok',
    205             invalid: 'glyphicon glyphicon-remove',
    206             validating: 'glyphicon glyphicon-refresh'
    207         },
    208         fields: {
    209             firstName: {
    210                 validators: {
    211                     notEmpty: {
    212                         message: 'The first name is required and cannot be empty'
    213                     }
    214                 }
    215             },
    216             lastName: {
    217                 validators: {
    218                     notEmpty: {
    219                         message: 'The last name is required and cannot be empty'
    220                     }
    221                 }
    222             },
    223             username: {
    224                 message: 'The username is not valid',
    225                 validators: {
    226                     notEmpty: {
    227                         message: 'The username is required and cannot be empty'
    228                     },
    229                     stringLength: {
    230                         min: 6,
    231                         max: 30,
    232                         message: 'The username must be more than 6 and less than 30 characters long'
    233                     },
    234                     regexp: {
    235                         regexp: /^[a-zA-Z0-9_.]+$/,
    236                         message: 'The username can only consist of alphabetical, number, dot and underscore'
    237                     },
    238                     remote: {
    239                         url: 'remote.php',
    240                         message: 'The username is not available'
    241                     },
    242                     different: {
    243                         field: 'password',
    244                         message: 'The username and password cannot be the same as each other'
    245                     }
    246                 }
    247             },
    248             email: {
    249                 validators: {
    250                     emailAddress: {
    251                         message: 'The input is not a valid email address'
    252                     }
    253                 }
    254             },
    255             password: {
    256                 validators: {
    257                     notEmpty: {
    258                         message: 'The password is required and cannot be empty'
    259                     },
    260                     identical: {
    261                         field: 'confirmPassword',
    262                         message: 'The password and its confirm are not the same'
    263                     },
    264                     different: {
    265                         field: 'username',
    266                         message: 'The password cannot be the same as username'
    267                     }
    268                 }
    269             },
    270             confirmPassword: {
    271                 validators: {
    272                     notEmpty: {
    273                         message: 'The confirm password is required and cannot be empty'
    274                     },
    275                     identical: {
    276                         field: 'password',
    277                         message: 'The password and its confirm are not the same'
    278                     },
    279                     different: {
    280                         field: 'username',
    281                         message: 'The password cannot be the same as username'
    282                     }
    283                 }
    284             },
    285             birthday: {
    286                 validators: {
    287                     date: {
    288                         format: 'YYYY/MM/DD',
    289                         message: 'The birthday is not valid'
    290                     }
    291                 }
    292             },
    293             gender: {
    294                 validators: {
    295                     notEmpty: {
    296                         message: 'The gender is required'
    297                     }
    298                 }
    299             },
    300             'languages[]': {
    301                 validators: {
    302                     notEmpty: {
    303                         message: 'Please specify at least one language you can speak'
    304                     }
    305                 }
    306             },
    307             'programs[]': {
    308                 validators: {
    309                     choice: {
    310                         min: 2,
    311                         max: 4,
    312                         message: 'Please choose 2 - 4 programming languages you are good at'
    313                     }
    314                 }
    315             },
    316             captcha: {
    317                 validators: {
    318                     callback: {
    319                         message: 'Wrong answer',
    320                         callback: function(value, validator) {
    321                             var items = $('#captchaOperation').html().split(' '), sum = parseInt(items[0]) + parseInt(items[2]);
    322                             return value == sum;
    323                         }
    324                     }
    325                 }
    326             }
    327         }
    328     });
    329 
    330     // Validate the form manually
    331     $('#validateBtn').click(function() {
    332         $('#defaultForm').bootstrapValidator('validate');
    333     });
    334 
    335     $('#resetBtn').click(function() {
    336         $('#defaultForm').data('bootstrapValidator').resetForm(true);
    337     });
    338 });
    339 </script>
    340 </body>
    341 </html>
    

      看331行,点击提交时,用 

    $('#defaultForm').bootstrapValidator('validate'); 

    触发表单验证

    下面是碰到的一个坑:

    bootstrapValidator默认逻辑是当表单验证失败时,把按钮给变灰色。
    但是项目中,button并不在form内部,是通过事件绑定来ajax提交的。那么问题来了:

    项目需要当form验证失败时,不执行所绑定的后续事件。百度半天找不到相关资料,最后还是要靠google:

    $("#yourform").submit(function(ev){ev.preventDefault();});
    $("#submit").on("click", function(){
    
       var bootstrapValidator = $("#yourform").data('bootstrapValidator');
       bootstrapValidator.validate();
       if(bootstrapValidator.isValid())
         $("#yourform").submit();
       else return;
    
    });
    

      

    酱紫就可以判断表单验证是否通过了。

  • 相关阅读:
    牛客练习赛51 D题
    Educational Codeforces Round 72 (Rated for Div. 2) C题
    Codeforces Round #583 (Div. 1 + Div. 2, based on Olympiad of Metropolises) C题
    Codeforces Round #583 (Div. 1 + Div. 2, based on Olympiad of Metropolises) A题
    Codeforces Round #583 (Div. 1 + Div. 2, based on Olympiad of Metropolises) A题
    Educational Codeforces Round 72 (Rated for Div. 2) B题
    Educational Codeforces Round 72 (Rated for Div. 2) A题
    《DSP using MATLAB》Problem 7.2
    《DSP using MATLAB》Problem 7.1
    《DSP using MATLAB》Problem 6.24
  • 原文地址:https://www.cnblogs.com/zmdComeOn/p/9816038.html
Copyright © 2011-2022 走看看