• Bootstrap表单验证插件bootstrapValidator使用方法整理


    插件介绍

    先上一个图:


    下载地址: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;
    
    });

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

  • 相关阅读:
    准备试用一下PHPUnit
    php dump 当前所有局部变量
    利用JNI动态链接库实现Java调用Jerasure库
    CentOS 5.5下配置新的Java环境
    Eclipse安装SVN插件
    hadoop0.20.2 Eclipse下编译过程
    学习ant——Java的Build工具
    CentOS5.5下安装MySQL 5.5全过程
    转载:Hadoop0.20.2集群的安装配置
    Linux 下使用Java连接MySQL数据库,并且实现插入、删除、选择操作
  • 原文地址:https://www.cnblogs.com/woodk/p/5546847.html
Copyright © 2020-2023  润新知