UNPKG

bootstrapvalidator

Version:

The best jQuery plugin to validate form fields. Designed to use with Bootstrap 3

180 lines (172 loc) 7.5 kB
<!DOCTYPE html> <html> <head> <title>BootstrapValidator demo</title> <link rel="stylesheet" href="../vendor/bootstrap/css/bootstrap.css"/> <link rel="stylesheet" href="../dist/css/bootstrapValidator.css"/> <script type="text/javascript" src="../vendor/jquery/jquery.min.js"></script> <script type="text/javascript" src="../vendor/bootstrap/js/bootstrap.min.js"></script> <script type="text/javascript" src="../dist/js/bootstrapValidator.js"></script> </head> <body> <div class="container"> <div class="row"> <section> <div class="col-lg-8 col-lg-offset-2"> <div class="page-header"> <h2>Credit card information</h2> </div> <form id="paymentForm" method="post" class="form-horizontal" action="target.php"> <div class="form-group"> <label class="col-lg-3 control-label">Card holder</label> <div class="col-lg-5"> <input type="text" class="form-control" id="cardHolder" /> </div> </div> <div class="form-group"> <label class="col-lg-3 control-label">Credit card number</label> <div class="col-lg-5"> <input type="text" class="form-control" id="ccNumber" /> </div> </div> <div class="form-group"> <label class="col-lg-3 control-label">Expiration</label> <div class="col-lg-4"> <input type="text" class="form-control" placeholder="Month" data-stripe="exp-month" /> </div> <div class="col-lg-4"> <input type="text" class="form-control" placeholder="Year" data-stripe="exp-year" /> </div> </div> <div class="form-group"> <label class="col-lg-3 control-label">CVV</label> <div class="col-lg-2"> <input type="text" class="form-control cvvNumber" name="cvv" /> </div> </div> <div class="form-group"> <div class="col-lg-9 col-lg-offset-3"> <button type="submit" class="btn btn-primary">Pay</button> </div> </div> </form> </div> </section> </div> </div> <script type="text/javascript"> $(document).ready(function() { $('#paymentForm').bootstrapValidator({ feedbackIcons: { valid: 'glyphicon glyphicon-ok', invalid: 'glyphicon glyphicon-remove', validating: 'glyphicon glyphicon-refresh' }, fields: { cardHolder: { selector: '#cardHolder', validators: { notEmpty: { message: 'The card holder is required' }, stringCase: { message: 'The card holder must contain upper case characters only', case: 'upper' } } }, ccNumber: { selector: '#ccNumber', validators: { notEmpty: { message: 'The credit card number is required' }, creditCard: { message: 'The credit card number is not valid' } } }, expMonth: { selector: '[data-stripe="exp-month"]', validators: { notEmpty: { message: 'The expiration month is required' }, digits: { message: 'The expiration month can contain digits only' }, callback: { message: 'Expired', callback: function(value, validator) { value = parseInt(value, 10); var year = validator.getFieldElements('expYear').val(), currentMonth = new Date().getMonth() + 1, currentYear = new Date().getFullYear(); if (value < 0 || value > 12) { return false; } if (year == '') { return true; } year = parseInt(year, 10); if (year > currentYear || (year == currentYear && value > currentMonth)) { validator.updateStatus('expYear', 'VALID'); return true; } else { return false; } } } } }, expYear: { selector: '[data-stripe="exp-year"]', validators: { notEmpty: { message: 'The expiration year is required' }, digits: { message: 'The expiration year can contain digits only' }, callback: { message: 'Expired', callback: function(value, validator) { value = parseInt(value, 10); var month = validator.getFieldElements('expMonth').val(), currentMonth = new Date().getMonth() + 1, currentYear = new Date().getFullYear(); if (value < currentYear || value > currentYear + 10) { return false; } if (month == '') { return false; } month = parseInt(month, 10); if (value > currentYear || (value == currentYear && month > currentMonth)) { validator.updateStatus('expMonth', 'VALID'); return true; } else { return false; } } } } }, cvvNumber: { selector: '.cvvNumber', validators: { notEmpty: { message: 'The CVV number is required' }, cvv: { message: 'The value is not a valid CVV', creditCardField: 'ccNumber' } } } } }); }); </script> </body> </html>