Última atualização: 0318/0607/2024
Em algumas regiões do Brasil, é comum você ter endereços de casas com números e letras (ex.: Rua Taltaltal, número 12A). Porém tivemos casos de clientes tendo problemas ao subir o cadastro com o número da casa digitado dessa forma (como quebrando a geração de contratos, subida de arquivos de documentos…). Notamos também que este problema ocorre quando a pessoa insere “0“ ou sequência de “0“ como número da casa.
...
O código abaixo é o que faz o aviso aparecer. Este código deve ser colado no Core Website do provedor, em “Custom script“.
Resumindo o funcionamento: o código carrega junto com a página, e fica esperando um certo elemento aparecer (no caso, de id #bfc_numberOfAddress
) durante o tempo definido por tempoSleepEmSegundos
. Quando aparece, ele cria todos os elementos necessários, para de rodar a função que gera tudo isso, e só mostra os avisos se a pessoa clicar no campo de número da casa, ou no tooltip (i) no rótulo.
...
Bloco de código |
---|
// Restringe input de número de casa para aceitar apenas números e seq. diferente de 0. // v.4.0.0 - 0318/0607/2024 //START var tempoSleepEmSegundos = 120; var numCasa = null; var numCasaWrp; var numCasaLabel; var toolTipIcon; var numCasaLabelContent = 'Nº da Residência (apenas números) <i class="fas fa-info-circle tooltip-info-circle"></i>'; var tooltipTxtContent = "Insira apenas números, ou \"snSN\" para \"Sem númeroNúmero\". Se necessário, insira letras no campo \"Complemento\" mais à frente. Número de casa com apenas \"0\" ou sequência de \"0\" é inválida."; function sleepSearchForNumCasaWrp(ms) { return new Promise((resolve) => {setTimeout(resolve, ms)} ) } async function searchForNumCasaWrp() { for (i = tempoSleepEmSegundos; i > 0; i--) { if (numCasa == null) { console.log("looking for numCasa"); fillsNumCasaInfo (); } else { break; } await sleepSearchForNumCasaWrp(1000); } } function createToolTip () { let toolTip = document.createElement("p") let toolTipTxtNode = document.createTextNode(tooltipTxtContent); toolTip.classList.add("numres-tooltip-text"); toolTip.appendChild(toolTipTxtNode); toolTipIcon = document.querySelector(".tooltip-info-circle"); numCasaWrp.append(toolTip); } function fillsNumCasaInfo () { try { numCasa = document.querySelector("#bfc_numberOfAddress"); numCasaWrp = document.querySelector("#bfc_numberOfAddress").parentNode; numCasaLabel = document.querySelector("#bfc_numberOfAddress").previousSibling; numCasaLabel.innerHTML = (numCasaLabelContent); console.log("NumCasa filled"); createWarning (); } catch (error) { console.log("numCasa ainda não preenchido", error) } } function createWarning () { numCasa.placeholder = "1234"; // É aplicado só após o numCasa estar preenchido createToolTip (); let toolTipWrp = document.querySelector(".numres-tooltip-text"); toolTipIcon.addEventListener("click", () => { (toolTipWrp.style.display == "none") ? toolTipWrp.style.display = "block" : toolTipWrp.style.display = "none"; }) numCasa.addEventListener("click", () => { (toolTipWrp.style.display == "none") ? toolTipWrp.style.display = "block" : toolTipWrp.style.display = "none"; }) } // END |
...