標籤:username not php email validate ida ast date validator
外掛程式介紹
先上一個圖:
:https://github.com/nghuuphuoc/bootstrapvalidator
使用方法:http://www.cnblogs.com/huangcong/p/5335376.html
使用提示
中文化:
下載外掛程式後,將\js\bootstrapValidator\language\zh_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" /> French104 </label>105 </div>106 <div class="checkbox">107 <label>108 <input type="checkbox" name="languages[]" value="german" /> German109 </label>110 </div>111 <div class="checkbox">112 <label>113 <input type="checkbox" name="languages[]" value="russian" /> Russian114 </label>115 </div>116 <div class="checkbox">117 <label>118 <input type="checkbox" name="languages[]" value="other" /> Other119 </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" /> .Net130 </label>131 </div>132 <div class="checkbox">133 <label>134 <input type="checkbox" name="programs[]" value="java" /> Java135 </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" /> PHP145 </label>146 </div>147 <div class="checkbox">148 <label>149 <input type="checkbox" name="programs[]" value="perl" /> Perl150 </label>151 </div>152 <div class="checkbox">153 <label>154 <input type="checkbox" name="programs[]" value="ruby" /> Ruby155 </label>156 </div>157 <div class="checkbox">158 <label>159 <input type="checkbox" name="programs[]" value="python" /> Python160 </label>161 </div>162 <div class="checkbox">163 <label>164 <input type="checkbox" name="programs[]" value="javascript" /> Javascript165 </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 captcha195 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 manually331 $(‘#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;});
醬紫就可以判斷表單驗證是否通過了。
轉自:http://www.cnblogs.com/woodk/p/5546847.html
Bootstrap表單驗證外掛程式bootstrapValidator使用方法整理