/
ValidInput.min.js
2 lines (2 loc) · 5.46 KB
/
ValidInput.min.js
1
2
/*! ValidInput v0.4.1 - https://github.com/defvayne23/ValidInput */
!function(){"use strict";function b(a,b){var c=!1;if(""===b.value&&(c=!0),"tel"===b.getAttribute("type")){var d=b.value;d=d.replace(/\D/g,""),10===d.length||(c=!0)}if(b.getAttribute("data-validinput-equalto")){var e=a.querySelector('input[name="'+b.getAttribute("data-validinput-equalto")+'"]');e&&b.value!==e.value&&(c=!0)}if(c===!0){if(b.getAttribute("data-required-label")?a.querySelector("."+b.getAttribute("data-required-label")).classList.remove("hide"):b.classList.add("required-error"),b.hasAttribute("id")){var f=a.querySelector("label[for="+b.getAttribute("id")+"]");f&&f.classList.add("required-error")}}else if(b.getAttribute("data-required-label")?a.querySelector("."+b.getAttribute("data-required-label")).classList.add("hide"):b.classList.remove("required-error"),b.hasAttribute("id")){var f=a.querySelector("label[for="+b.getAttribute("id")+"]");f&&f.classList.remove("required-error")}return c}var a=document.querySelectorAll("form");Array.prototype.forEach.call(a,function(a){var c,d;a.querySelectorAll(".submit button");a.hasAttribute("data-validation-ignore")||(a.addEventListener("click",function(a){"BUTTON"!==a.target.nodeName&&("INPUT"!==a.target.nodeName||"submit"!==a.target.getAttribute("type")&&"image"!==a.target.getAttribute("type"))||(c=this,d=a.target)}),a.addEventListener("submit",function(e){var f=!1,g=a.querySelectorAll("[data-required]"),h="";if(d&&c===this&&(h=d.value,d.hasAttribute("data-validation-ignore")))return!0;if("Back"!==h){if(Array.prototype.forEach.call(g,function(c){var d=!1;if("INPUT"===c.nodeName||"TEXTAREA"===c.nodeName){if(c.hasAttribute("data-requires")){var e=a.querySelector('[name="'+c.getAttribute("data-requires")+'"]:checked');e||(e=a.querySelector('[name="'+c.getAttribute("data-requires")+'"]')),e&&(c.hasAttribute("data-requires-value")?e.value!==c.getAttribute("data-requires-value")&&(d=!0):""===e.value&&(d=!0))}if(d===!1){var g=b(a,c);g===!0&&(f=!0),c.addEventListener("blur",function(c){var d=b(a,this);d===!0&&(f=!0)})}}else if("SELECT"===c.nodeName){if(c.hasAttribute("data-requires")){var e=a.querySelector('[name="'+c.getAttribute("data-requires")+'"]:checked');e||(e=a.querySelector('[name="'+c.getAttribute("data-requires")+'"]')),e&&(c.hasAttribute("data-requires-value")?(console.log("Required value"),console.log(e.value),console.log(c.getAttribute("data-requires-value")),e.value!==c.getAttribute("data-requires-value")&&(d=!0)):""===e.value&&(d=!0))}console.log(d),d===!1?(""===c.value?(f=!0,c.getAttribute("data-required-label")?a.querySelector("."+c.getAttribute("data-required-label")).classList.remove("hide"):c.getAttribute("id")&&a.querySelector('label[for="'+c.getAttribute("id")+'"]')?a.querySelector('label[for="'+c.getAttribute("id")+'"]').classList.add("required-error"):c.parentNode.classList.add("required-error")):c.getAttribute("data-required-label")?a.querySelector("."+c.getAttribute("data-required-label")).classList.add("hide"):c.getAttribute("id")&&a.querySelector('label[for="'+c.getAttribute("id")+'"]')?a.querySelector('label[for="'+c.getAttribute("id")+'"]').classList.remove("required-error"):c.parentNode.classList.remove("required-error"),c.addEventListener("change",function(b){""===this.value?(f=!0,this.getAttribute("data-required-label")?a.querySelector("."+this.getAttribute("data-required-label")).classList.remove("hide"):this.getAttribute("id")&&a.querySelector('label[for="'+this.getAttribute("id")+'"]')?a.querySelector('label[for="'+this.getAttribute("id")+'"]').classList.add("required-error"):this.parentNode.classList.add("required-error")):this.getAttribute("data-required-label")?a.querySelector("."+this.getAttribute("data-required-label")).classList.add("hide"):this.getAttribute("id")&&a.querySelector('label[for="'+this.getAttribute("id")+'"]')?a.querySelector('label[for="'+this.getAttribute("id")+'"]').classList.remove("required-error"):this.parentNode.classList.remove("required-error")})):c.getAttribute("data-required-label")?a.querySelector("."+c.getAttribute("data-required-label")).classList.add("hide"):c.getAttribute("id")&&a.querySelector('label[for="'+c.getAttribute("id")+'"]')?a.querySelector('label[for="'+c.getAttribute("id")+'"]').classList.remove("required-error"):c.parentNode.classList.remove("required-error")}else if(c.classList.contains("required-sum")){var h=c.querySelectorAll("input[type=range]"),i=0;Array.prototype.forEach.call(h,function(a){i+=parseInt(a.value)}),100!==i?(f=!0,a.querySelector("."+c.getAttribute("data-required-label")).classList.remove("hide")):a.querySelector("."+c.getAttribute("data-required-label")).classList.add("hide")}else if(c.classList.contains("radios")||c.classList.contains("checkboxes")||"UL"===c.nodeName||c.classList.contains("required-radios")){var d=!1;if(c.hasAttribute("data-required-visible")&&(c.offsetWidth>0&&c.offsetHeight>0||(d=!0)),d===!1){var j=c.querySelectorAll("input:checked");0===j.length?(f=!0,c.getAttribute("data-required-label")?a.querySelector("."+c.getAttribute("data-required-label")).classList.remove("hide"):c.previousElementSibling.classList.add("required-error")):c.getAttribute("data-required-label")?a.querySelector("."+c.getAttribute("data-required-label")).classList.add("hide"):c.previousElementSibling.classList.remove("required-error")}}}),c=d=null,f===!1)return!0;e.preventDefault();var i=a.querySelector(".form-error-message");return i||a.querySelector("input[type=submit]").insertAdjacentHTML("beforebegin",'<p class="form-error-message">Please see above form errors.</p>'),!1}}))})}();