-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbvalidator.jquery.min.js
More file actions
1 lines (1 loc) · 7.7 KB
/
bvalidator.jquery.min.js
File metadata and controls
1 lines (1 loc) · 7.7 KB
1
!function(t){t.bValidator={defaults:{},validations:{},transformations:{},init:function(a,n){var r=this;r.destruct(a),a.data("bValidator",n),t("."+n.errorMessageClass,a).hide();var i=t("input[data-bvString], input[data-bvStrict], select[data-bvStrict], textarea[data-bvString], textarea[data-bvStrict]",a);i.each(function(){var a=t(this);a.on("focusin.bValidator",function(){var a=t(this),n=a.parents("form"),i=n.data("bValidator");r.focus(a,i),i.onFocusIn.call(this,n,a)});var i="focusout";a.is('select, input[type="checkbox"], input[type="radio"]')&&(i="change"),a.on(i+".bValidator",function(){var a=t(this),i=a.parents("form");r.validate(a),n.onFocusOut.call(this,i,a)}),n.onKeyUpValidate&&a.on("keyup.bValidator",function(){var a=t(this),i=a.parents("form");r.validate(a),n.onKeyUp.call(this,i,a)}),r.initInput(a)}),a.on("submit.bValidator",function(a){var n=t(this).data("bValidator"),i=!0,e=t("input[data-bvString], input[data-bvStrict], select[data-bvStrict], textarea[data-bvString], textarea[data-bvStrict]",t(this));e.each(function(){r.validate(t(this))||(i=!1)}),i?(e.each(function(){r.focus(t(this),n)}),n.beforeSubmit.call(this,this,a)):(n.onSubmitFail.call(this,this,a),a.preventDefault())})},getConfig:function(t){var a=t.val();conf={},conf.switchVal=void 0==t.attr("data-bvSwitch")?"":t.attr("data-bvSwitch"),conf.prepend=void 0==t.attr("data-bvPrepend")?"":t.attr("data-bvPrepend"),conf.string=void 0==t.attr("data-bvString")?".*":t.attr("data-bvString"),conf.append=void 0==t.attr("data-bvAppend")?"":t.attr("data-bvAppend"),conf.transform=void 0==t.attr("data-bvTransform")?"":t.attr("data-bvTransform");var n="^.*("+conf.append+")$",r=new RegExp(n,"i"),i="?";null!=a.match(r)&&""!=a.match(r)[1]&&(i="");var n="^("+conf.prepend+")?("+conf.string+")("+conf.append+")"+i+"$",r=new RegExp(n,"i");return conf.newString=a.match(r)[2],conf.switchVal==conf.newString&&(conf.newString=""),conf.empty=void 0==t.attr("data-bvEmpty")?"":t.attr("data-bvEmpty"),conf.strict=void 0==t.attr("data-bvStrict")?"":t.attr("data-bvStrict"),conf},initInput:function(t){return conf=this.getConfig(t),conf.prepend=conf.prepend.replace(/\\|\?/g,""),conf.append=conf.append.replace(/\\|\?/g,""),t.is('[type="file"]')?conf:(t.val()&&t.val()!=conf.empty&&""!=conf.newString?(conf.transform&&(conf.newString=this.transform(conf.newString,conf.transform)),t.val(conf.prepend+conf.newString+conf.append)):t.val(""==conf.empty&&""==conf.switchVal?conf.prepend+conf.append:""==conf.switchVal?conf.empty:conf.switchVal),conf)},focus:function(a,n){conf=this.getConfig(a),a.is('[type="file"]')||a.val(a.val()==conf.switchVal?"":t.trim(conf.newString)),n.onFocusHideError&&this.clean(a,n)},isValid:function(a,n,r){if("undefined"==typeof a)var i=this.initInput(r),a=i.newString;if("undefined"==typeof n)var i=this.initInput(r),n=i.strict;var e=this,o=!1,s=n.replace(/({{((?!}}).)*}})/g,"{{NOPARSE}}"),l=n.match(/({{((?!}}).)*}})/g),c=s.split("|");return t.each(c,function(n,i){var s=i.split("&"),c=!0;return t.each(s,function(t,n){for(var i=n.split(":"),o=0;o<i.length;o++)if(null!==i[o].match(/\{\{NOPARSE\}\}/)){var s=l.shift();i[o]=i[o].replace("{{NOPARSE}}",s.slice(2,-2))}return e.validations[i[0]].func(a,i,r)?void 0:void(c=!1)}),1==c?void(o=!0):void 0}),o},validate:function(t){var a=t.parents("form"),n=a.data("bValidator");return this.clean(t,n),conf=this.initInput(t),this.isValid(conf.newString,conf.strict,t)?this.valid(a,n,t):this.invalid(a,n,t)},validation:function(){return this.validations[arguments[0]]={func:arguments[1]},this},transform:function(t,a){return this.transformations[a].func(t)},transformation:function(){return this.transformations[arguments[0]]={func:arguments[1]},this},clean:function(t,a){"direct"==a.domType?(t.removeClass(a.errorClass).removeClass(a.validClass),t.parents("form").find(".error-"+t.attr("name")).removeClass(a.errorClass).removeClass(a.validClass).hide(),t.parents("form").find('label[for="'+t.attr("name")+'"]').removeClass(a.errorClass).removeClass(a.validClass)):t.parents("."+a.rowClass).removeClass(a.errorClass).removeClass(a.validClass).find("."+a.errorMessageClass).hide()},valid:function(t,a,n){return"direct"==a.domType?(n.addClass(a.validClass),t.find(".error-"+n.attr("name")).addClass(a.validClass).hide(),t.find('label[for="'+n.attr("name")+'"]').addClass(a.validClass)):(n.parents("."+a.rowClass).addClass(a.validClass),n.parents("."+a.rowClass).find("."+a.errorMessageClass).hide()),a.onValid.call(this,t,n),!0},invalid:function(t,a,n){return"direct"==a.domType?(n.addClass(a.errorClass),t.find(".error-"+n.attr("name")).addClass(a.errorClass).show(),t.find('label[for="'+n.attr("name")+'"]').addClass(a.errorClass)):(n.parents("."+a.rowClass).addClass(a.errorClass),n.parents("."+a.rowClass).find("."+a.errorMessageClass).show()),a.onInvalid.call(this,t,n),!1},destruct:function(a){a.unbind(".bValidator");var n=t("input[data-bvString], input[data-bvStrict], textarea[data-bvString], textarea[data-bvStrict]",a);n.unbind(".bValidator"),a.removeData("bValidator")}},t.fn.bValidator=function(a,n){if("string"==typeof a&&"isValid"==a){var r=!0;return this.each(function(){return"undefined"==typeof n&&(n=Array()),t.bValidator.isValid(void 0,n[0],t(this))?void 0:void(r=!1)}),r}var i=t.extend({errorClass:"error",errorMessageClass:"error-message",validClass:"valid",rowClass:"row",onFocusHideError:!1,onKeyUpValidate:!1,domType:"row",onValid:function(){},onInvalid:function(){},beforeSubmit:function(){},onSubmitFail:function(){},onFocusIn:function(){},onFocusOut:function(){},onKeyUp:function(){}},a);return this.each(function(){if("string"!=typeof a)return $this=t(this),$this.is("form")||($this=$this.find("form")),$this.each(function(){t.bValidator.init(t(this),i)});switch(a){case"validate":return t.bValidator.validate(t(this));case"destruct":return t.bValidator.destruct(t(this))}})}}(jQuery),jQuery.bValidator.validation("number",function(t,a){if(valid=null!=t.match(/^[0-9]+$/),!valid)return!1;if("undefined"!=typeof a[1]){if(intVal=parseInt(t),""!=a[1]&&intVal<a[1])return!1;if("undefined"!=typeof a[2]&&""!=a[2]&&intVal>a[2])return!1}return!0}).validation("empty",function(t){return""==t}).validation("if",function(t,a,n){var r=n.parents("form").find('[name="'+a[1]+'"]');return r.bValidator("isValid",Array(a[2]))?n.bValidator("isValid",Array(a[3])):!0}).validation("ifv",function(t,a,n){return n.parents("form").find('[name="'+a[1]+'"]').val()==a[2]?n.bValidator("isValid",Array(a[3])):!0}).validation("same",function(t,a){return t==$('form [name="'+a[1]+'"]').val()}).validation("reg",function(t,a){return null!=t.match(a[1])}).validation("notEmpty",function(t){return null!=t.match(/^.+$/)}).validation("string",function(t){return null!=t.match(/^[a-zA-Z]*$/)}).validation("email",function(t){return null!=t.match(/^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/)&&0!=t.length}).validation("zip",function(t){return null!=t.match(/^[0-9]{5}$/)}).validation("city",function(t){return null!=t.match(/^.{2,}$/)}).validation("date",function(t,a){console.log(a[1]);regex=a[1],day=month=year=null;regex=regex.replace("mm","[01][0-9]"),regex=regex.replace("m","[1]?[0-9]"),regex=regex.replace("dd","[0123][0-9]"),regex=regex.replace("d","[0123]?[0-9]"),regex=regex.replace("yyyy","[0-9]{4}"),regex=regex.replace("yy","[0-9]{2}");var n="^"+regex+"$",r=new RegExp(n,"");return!!t.match(r)}).validation("nin",function(t){return null!=t.match(/^[0-9]{6}\/[0-9]{3,4}$/)}).validation("false",function(){return!1}).validation("true",function(){return!0}).validation("checked",function(t,a,n){return $(n).prop("checked")}).validation("phone",function(t){var a,n=0,r=0,i=t;if(!i.match(/^[0-9]{9}$/))return!1;for(a=4;9>a;a++)3!=a&&i.charAt(a)==i.charAt(a-1)&&n++,(parseInt(i.charAt(a))==parseInt(i.charAt(a-1))+1||"0"==i.charAt(a)&&"9"==i.charAt(a-1))&&r++;return n>=4||r>=5?!1:!0}).transformation("noSpaces",function(t){return t.replace(/ /g,"")});