PageSourceSearch

https://www.kalunga.com.br/static/scripts/dist/validate.js

js kalunga.com.br collected 2026-10-02 02:46:31 UTC 6,504 bytes, 53 lines download raw bytes

1"use strict";const hasError=function(field){if(field.disabled||field.type==="file"||field.type==="reset"||field.type==="submit"||field.type==="button"){return;}
2const{validity}=field;if(validity.valid){return;}
3if(validity.valueMissing){return"Campo obrigatório.";}
4if(validity.typeMismatch){if(field.type==="email"){return"Digite um e-mail válido.";}
5if(field.type==="url"){return"Digite uma URl válido";}}
6if(validity.tooShort){return`Campo precisa de no minimo ${field.getAttribute("minLength")} caracters.`;}
7if(validity.tooLong){return`Campo com quantidade máximo de ${field.getAttribute("maxLength")} caracters.`;}
8if(validity.badInput){return"Campo númerico.";}
9if(validity.stepMismatch){return"Selecione um valor válido.";}
10if(validity.rangeOverflow){return`Digitar um valor menor que ${field.getAttribute("max")}.`;}
11if(validity.rangeUnderflow){return`Digitar um valor maior que ${field.getAttribute("min")}.`;}
12if(validity.patternMismatch){if(field.hasAttribute("title")){return field.getAttribute("title");}
13return"Formato incorreto.";}
14return"Valor inválido.";};const showErrorWithoutForm=function(field,error){field.classList.add("error");
14if(field.type==="radio"&&field.name){const group=document.getElementsByName(field.name);if(group.length>0){for(let i=0;i<group.length;i++){if(group[i]!==field){continue;}
15group[i].classList.add("error");}
16field=group[group.length-1];}}
17const id=field.id||field.name;if(!id){return;}
18if(!field.nextElementSibling){let message=field.querySelector(`.error-message#error-for-${id}`);if(!message){message=document.createElement("div");message.className="error-message";message.id=`error-for-${id}`;let label;if(field.type==="radio"||field.type==="checkbox"){label=field.parentElement.getAttribute("for")===id;if(label){field.parentElement.insertBefore(message,label.nextSibling);}}
19if(!label){field.parentNode.insertBefore(message,field.nextSibling);}}
20field.setAttribute("aria-describedby",`error-for-${id}`);message.innerHTML=error;message.style.display="block";message.style.visibility="visible";}
21else{field.nextElementSibling.innerHTML=error;field.nextElementSibling.style.display="block";field.nextElementSibling.style.visibility="visible";}};const removeErrorWithoutForm=function(field){field.classList.remove("error");if((field.type==="radio"||field.type==="checkbox")&&field.name){const group=document.getElementsByName(field.name);if(group.length>0){for(let i=0;i<group.length;i++){if(group[i]!==field){continue;}
22group[i].classList.remove("error");}
23field=group[group.length-1];}}
24field.removeAttribute("aria-describedby");const id=field.id||field.name;if(!id){return;}
25const fieldChildren=field.nextElementSibling;if(fieldChildren){const message=fieldChildren.id===`error-for-${id}`;if(!message){return;}
26fieldChildren.innerHTML="";fieldChildren.style.display="none";fieldChildren.style.visibility="hidden";}};function validar(){const fields=document.querySelectorAll("[required]");let error;let hasErrors;for(let i=0;i<fields.length;i++){error=hasError(fields[i]);if(error){showErrorWithoutForm(fields[i],error);if(!hasErrors){hasErrors=fields[i];}}
27else{removeErrorWithoutForm(fields[i]);}}
28if(hasErrors){const clickEvent=window.event;if(clickEvent&&typeof clickEvent.preventDefault==='function'){clickEvent.preventDefault();}
29hasErrors.focus();}
30return(hasErrors===undefined);}
31const showError=function(field,error){field.classList.add("error");
31if(field.type==="radio"&&field.name){const group=document.getElementsByName(field.name);if(group.length>0){for(let i=0;i<group.length;i++){if(group[i].form!==field.form){continue;}
32group[i].classList.add("error");}
33field=group[group.length-1];}}
34const id=field.id||field.name;if(!id){return;}
35let message=field.form.querySelector(`.error-message#error-for-${id}`);if(!message){message=document.createElement("div");message.className="error-message";message.id=`error-for-${id}`;let label;if(field.type==="radio"||field.type==="checkbox"){label=field.form.querySelector(`label[for="${id}"]`)||field.parentNode;if(label){label.parentNode.insertBefore(message,label.nextSibling);}}
36if(!label){field.parentNode.insertBefore(message,field.nextSibling);}}
37field.setAttribute("aria-describedby",`error-for-${id}`);message.innerHTML=error;message.style.display="block";message.style.visibility="visible";};const removeError=function(field){field.classList.remove("error");if(field.type==="radio"&&field.name){const group=document.getElementsByName(field.name);if(group.length>0){for(let i=0;i<group.length;i++){if(group[i].form!==field.form){continue;}
38group[i].classList.remove("error");}
39field=group[group.length-1];}}
40field.removeAttribute("aria-describedby");const id=field.id||field.name;if(!id){return;}
41const message=field.form.querySelector(`.error-message#error-for-${id}`);if(!message){return;}
42message.innerHTML="";message.style.display="none";message.style.visibility="hidden";};document.addEventListener("submit",(event)=>{if(!event.target.classList.contains("validate")){return;}
43const fields=event.target.elements;let error;let hasErrors;for(let i=0;i<fields.length;i++){error=hasError(fields[i]);if(error){showError(fields[i],error);if(!hasErrors){hasErrors=fields[i];}}
44else{removeError(fields[i]);}}
45if(hasErrors){event.preventDefault();hasErrors.focus();}},{passive:true});window.onload=function(){const forms=document.querySelectorAll(".validate");for(let i=0;i<forms.length;i++){forms[i].setAttribute("novalidate","true");}
46const btnValidate=document.querySelector(".btn-validate");if(btnValidate){btnValidate.addEventListener("click",(event)=>{const fields=document.querySelectorAll("[required]");let error;let hasErrors;for(let i=0;i<fields.length;i++){error=hasError(fields[i]);if(error){showErrorWithoutForm(fields[i],error);if(!hasErrors){hasErrors=fields[i];}}
47else{removeErrorWithoutForm(fields[i]);}}
48if(hasErrors){event.preventDefault();hasErrors.focus();}},false);}};function ValidarCampoObrigatorio(field){let hasErrors;const error=hasError(field);if(error){showErrorWithoutForm(field,error);if(!hasErrors){hasErrors=field;}}
49else{removeErrorWithoutForm(field);}
50return(hasErrors===undefined);}
51function Validar_Campos_Obrigatorios(container){const scope=container||document;const fields=scope.querySelectorAll("[required]");let error;let hasErrors;for(let i=0;i<fields.length;i++){error=hasError(fields[i]);if(error){showErrorWithoutForm(fields[i],error);if(!hasErrors){hasErrors=fields[i];}}
52else{removeErrorWithoutForm(fields[i]);}}
53return hasErrors===undefined;}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.