Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Ú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.

...

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

...