MediaWiki:AddressFromCep.js: mudanças entre as edições

De Wikincat
Ir para navegação Ir para pesquisar
imp>Jaider
(version without jQuery)
 
imported>Jaideraf
m (uma edição)
(Sem diferença)

Edição das 15h21min de 26 de outubro de 2020

// Adapted from https://viacep.com.br/exemplo/javascript/
function cleanAddressesFields() {
    // It cleans values from addresses fields.
    document.getElementById("input_6").value = ("");
    document.getElementById("input_7").value = ("");
    document.getElementById("input_8").value = ("");
    document.getElementById("input_9").value = ("");
}
function myCallback(dados) {
    if (!("erro" in dados)) {
        // It updates the addresses fields with the data from the query.
        document.getElementById("input_6").value = (dados.logradouro);
        document.getElementById("input_7").value = (dados.bairro);
        document.getElementById("input_8").value = (dados.localidade);
        document.getElementById("input_9").value = (dados.uf);
    }
    else {
        // The CEP searched was not found.
        cleanAddressesFields();
        alert("CEP não encontrado.");
    }
}
function searchCep(value) {
    // A new variable "cep" is made with only digits.
    let cep = value.replace(/\D/g, "");
    // Testing if the CEP variable has any value.
    if (cep !== "") {
        // Regular expression to validate CEP.
        let cepValidator = /^[0-9]{8}$/;
        // Testing CEP validation. If true...
        if (cepValidator.test(cep)) {
            // It fills the address fields with "..." while the web service is busy.
            document.getElementById("input_6").value = "...";
            document.getElementById("input_7").value = "...";
            document.getElementById("input_8").value = "...";
            document.getElementById("input_9").value = "...";
            // It creates a javaScript element.
            let script = document.createElement("script");
            // It sincronizes with callback.
            script.src = "https://viacep.com.br/ws/" + cep + "/json/?callback=myCallback";
            // It inserts the script into the document and load the contents.
            document.body.appendChild(script);
        }
        else {
            // The CEP is invalid.
            cleanAddressesFields();
            alert("Formato de CEP inválido.");
        }
    }
    else {
        // The CEP is empty, it cleans the form fields.
        cleanAddressesFields();
    }
}
document.getElementById("input_4").setAttribute("onblur", "searchCep(this.value)");