-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathrequorm.min.js
1 lines (1 loc) · 3.63 KB
/
requorm.min.js
1
"use strict";!function(){window.requorm=function(t,e,u){this.version="0.1.1",this.author="Alex Saskevich",this.attribute="checkers",this.validClass="valid-input",this.invalidClass="invalid-input",this.checkers=[],this.tooltipMessages=[],this.useTooltips=!1,this.setTooltip=function(t,e){this.tooltipMessages[t]=e},this.addChecker=function(t,e){this.checkers[t]=e,this.setTooltip(t,t)},this.setTooltipUsing=function(t){this.useTooltips=t},this.apply=function(t){function e(){function t(t,e){return e.className.match(new RegExp("(\\s|^)"+t+"(\\s|$)"))}function e(e,u){t(e,u)||(u.className+=" "+e)}function i(e,u){if(t(e,u)){var i=new RegExp("(\\s|^)"+e+"(\\s|$)");u.className=u.className.replace(i," ")}}for(var r=!0,o=a.length;o--;){var h=[];if(null!=a[o].getAttribute(u.attribute)){var c=a[o].getAttribute(u.attribute);h=a[o].getAttribute(u.attribute).split(/\s*;\s*/);var d=!0,x="";if(0==c.indexOf("/")&&c.lastIndexOf("/")==c.length-1){var p=new RegExp(c.substr(1,c.length-2));x="RegExp "+c.substr(1,c.length-2),d=p.test(a[o].value),r=r&&p.test(a[o].value)}else for(var f=h.length;f--;){var v=h[f],D=v.indexOf("("),g=v.indexOf(")"),C=[],A=!0;-1!=D&&g>D&&(C=v.substr(D+1,g-D-1).split(/,\s*/),v=v.substr(0,D)),null!=F[v]&&(A=F[v](a[o],C),A||(x+=" ["+s[v]+"]")),r=r&&A,d=d&&A}d?(e(u.validClass,a[o]),i(u.invalidClass,a[o]),a[o].removeAttribute("rel"),a[o].removeAttribute("data-original-title")):(e(u.invalidClass,a[o]),i(u.validClass,a[o]),n&&(a[o].setAttribute("rel","tooltip"),a[o].setAttribute("data-original-title",x)))}else e(u.validClass,a[o])}for(var o=l.length;o--;)l[o].disabled=!r;n&&"function"==typeof $&&"function"==typeof $("[rel=tooltip]").tooltip&&$("[rel=tooltip]").tooltip()}for(var u=this,i=document.querySelectorAll(t),F=this.checkers,s=this.tooltipMessages,n=this.useTooltips,a=[],l=[],r=i.length;r--;)for(var o=i[r].querySelectorAll("input, textarea, select"),h=o.length;h--;)"button"!=o[h].type&&"submit"!=o[h].type?(a.push(o[h]),o[h].addEventListener("input",e,!1)):("button"==o[h].type||"submit"==o[h].type)&&l.push(o[h]);e()},this.initDefCheckers=function(){this.addChecker("notEmpty",function(t){return t.value}),this.addChecker("minLength",function(t,e){return e.length>0&&t.value.length>=parseInt(e[0])}),this.addChecker("maxLength",function(t,e){return e.length>0&&t.value.length<=parseInt(e[0])}),this.addChecker("len",function(t,e){return e.length>1&&t.value.length>=parseInt(e[0])&&t.value.length<=parseInt(e[1])}),this.addChecker("equal",function(t,e){return e.length>0&&t.value==e[0]}),this.addChecker("alpha",function(t){return/^[a-zA-Z]+$/.test(t.value)}),this.addChecker("numeric",function(t){return/^-?[0-9]+$/.test(t.value)}),this.addChecker("email",function(t){return/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(t.value)}),this.addChecker("alphanum",function(t){return/^[a-zA-Z0-9]+$/.test(t.value)})}}}();