| 1234567891011 |
- /**
- * BootstrapValidate v0.1.0 (http://github.com/nghuuphuoc/bootstrapvalidate)
- *
- * A jQuery plugin to validate form fields. Use with Bootstrap 3
- *
- * @author Nguyen Huu Phuoc <phuoc@huuphuoc.me>
- * @copyright (c) 2013 Nguyen Huu Phuoc
- * @license MIT
- */
- !function(a){a.fn.bootstrapValidate=function(b){return this.each(function(){var c=a(this),d=c.data("bootstrapValidate");d||c.data("bootstrapValidate",d=new a.bootstrapValidator(this,b))})},a.bootstrapValidator=function(b,c){this.$form=a(b),this.options=a.extend({},a.bootstrapValidator.DEFAULT_OPTIONS,c),this.invalidFields={},this.xhrRequests={},this.numPendingRequests=0,this.init()},a.extend(a.bootstrapValidator,{DEFAULT_OPTIONS:{message:"This value is not valid",fields:null},validator:{},prototype:{getForm:function(){return this.$form},init:function(){if(null!=this.options.fields){var a=this;this.$form.addClass("bootstrap-validate-form").on("submit",function(b){if(a.options.fields){for(var c in a.options.fields)a.validateField(c);a.isValid()||b.preventDefault()}});for(var b in this.options.fields)this.initField(b)}},initField:function(b){if(null!=this.options.fields[b]&&null!=this.options.fields[b].validator){var c=this.$form.find('[name="'+b+'"]');if(0!=c.length){var d=this,e=a(c[0]),f=e.parents(".form-group"),g=f.find(".help-block");if(0==g.length){var h=a("<small/>").addClass("help-block").appendTo(f);e.data("bootstrapValidator.error",h);var i,j,k;if(i=f.find("label").get(0)){j=a(i).attr("class").split(" ");for(var l=0;l<j.length;l++)if("col-lg-"==j[l].substr(0,7)){k=j[l].substr(7);break}}else{j=f.children().eq(0).attr("class").split(" ");for(var l=0;l<j.length;l++)if("col-lg-offset-"==j[l].substr(0,14)){k=j[l].substr(14);break}}h.addClass("col-lg-offset-"+k).addClass("col-lg-"+parseInt(12-k))}else e.data("bootstrapValidator.error",g.eq(0));var m=e.attr("type"),n="checkbox"==m||"radio"==m?"change":"keyup";e.on(n,function(){d.validateField(b)})}}},validateField:function(b){var c=this.$form.find('[name="'+b+'"]');if(0!=c.length){var d=this,e=a(c[0]),f=d.options.fields[b].validator;for(var g in f)if(a.bootstrapValidator.validator[g]){var h=a.bootstrapValidator.validator[g].validate(d,e,f[g]);if(h===!1){d.showError(e,g);break}h===!0&&d.removeError(e)}}},showError:function(a,b){var c=a.attr("name"),d=this.options.fields[c].validator[b],e=d.message||this.options.message,f=a.parents(".form-group");this.invalidFields[c]=!0,f.removeClass("has-success").addClass("has-error"),a.data("bootstrapValidator.error").html(e).show()},removeError:function(a){this.invalidFields[a.attr("name")]=!1,a.parents(".form-group").removeClass("has-error").addClass("has-success"),a.data("bootstrapValidator.error").hide()},startRequest:function(a,b,c){var d=a.attr("name");this.completeRequest(a,b),this.numPendingRequests<0&&(this.numPendingRequests=0),this.numPendingRequests++,this.xhrRequests[d]||(this.xhrRequests[d]={}),this.xhrRequests[d][b]=c},completeRequest:function(a,b){var c=a.attr("name");if(this.xhrRequests[c]&&this.xhrRequests[c][b]){this.numPendingRequests--;var d=this.xhrRequests[c][b];d.abort(),delete this.xhrRequests[c][b]}},isValid:function(){if(console.log(this.numPendingRequests),this.numPendingRequests>0)return!1;for(var a in this.invalidFields)if(this.invalidFields[a])return!1;return!0}}})}(window.jQuery),function(a){a.extend(a.bootstrapValidator.validator,{between:{validate:function(a,b,c){var d=parseFloat(b.val());return c.inclusive===!0?d>c.min&&d<c.max:d>=c.min&&d<=c.max}}})}(window.jQuery),function(a){a.extend(a.bootstrapValidator.validator,{digits:{validate:function(a,b){return/^\d+$/.test(b.val())}}})}(window.jQuery),function(a){a.extend(a.bootstrapValidator.validator,{emailAddress:{validate:function(b,c){var d=a.trim(c.val()),e=/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;return e.test(d)}}})}(window.jQuery),function(a){a.extend(a.bootstrapValidator.validator,{greaterThan:{validate:function(a,b,c){var d=parseFloat(b.val());return c.inclusive===!0?d>c.value:d>=c.value}}})}(window.jQuery),function(a){a.extend(a.bootstrapValidator.validator,{hexColor:{validate:function(a,b){var c=b.val();return/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(c)}}})}(window.jQuery),function(a){a.extend(a.bootstrapValidator.validator,{identical:{validate:function(a,b,c){var d=b.val(),e=a.getForm().find('[name="'+c.field+'"]');return d==e.val()?(a.removeError(e),!0):!1}}})}(window.jQuery),function(a){a.extend(a.bootstrapValidator.validator,{lessThan:{validate:function(a,b,c){var d=parseFloat(b.val());return c.inclusive===!0?d<c.value:d<=c.value}}})}(window.jQuery),function(a){a.extend(a.bootstrapValidator.validator,{notEmpty:{validate:function(b,c){var d=c.attr("type");return"checkbox"==d||"radio"==d?c.is(":checked"):""!=a.trim(c.val())}}})}(window.jQuery),function(a){a.extend(a.bootstrapValidator.validator,{regexp:{validate:function(b,c,d){var e=a.trim(c.val());return e.match(d.regexp)}}})}(window.jQuery),function(a){a.extend(a.bootstrapValidator.validator,{remote:{validate:function(b,c,d){var e=c.val(),f=c.attr("name"),g=d.data;null==g&&(g={},g[f]=e);var h=a.ajax({type:"POST",url:d.url,dataType:"json",data:g}).success(function(a){b.completeRequest(c,"remote"),(a.valid===!1||"false"===a.valid)&&b.showError(c,"remote")});return b.startRequest(c,"remote",h),"pending"}}})}(window.jQuery),function(a){a.extend(a.bootstrapValidator.validator,{stringLength:{validate:function(b,c,d){var e=a.trim(c.val()),f=e.length;return d.min&&f<d.min||d.max&&f>d.max?!1:!0}}})}(window.jQuery),function(a){a.extend(a.bootstrapValidator.validator,{uri:{validate:function(a,b){var c=new RegExp("^(?:(?:https?|ftp)://)(?:\\S+(?::\\S*)?@)?(?:(?!10(?:\\.\\d{1,3}){3})(?!127(?:\\.\\d{1,3}){3})(?!169\\.254(?:\\.\\d{1,3}){2})(?!192\\.168(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))(?::\\d{2,5})?(?:/[^\\s]*)?$","i");return c.test(b.val())}}})}(window.jQuery),function(a){a.extend(a.bootstrapValidator.validator,{usZipCode:{validate:function(a,b){var c=b.val();return/^\d{5}([\-]\d{4})?$/.test(c)}}})}(window.jQuery);
|