Validación y limitación para el campo de número de teléfono para Colombia

Hola,

Para usar este código es necesaria esta estructura:

  • 1 elemento de container con 2 boxes:

  • Dentro del primer box, agregar un form element con la siguiente configuración:

  • El segundo box debe estar así:

Luego en CUSTOM CODES> CSS agregar el siguiente código:

    .unvalid-num {
      border: 2px solid red !important;
      outline: none !important;
    }
    .valid-num {
     border: 2px solid green !important;
     outline: none !important;
    }

Y dentro de BODY HTML agregar este código:

<script>
        let max = 10;
        let min = 3;
        blockNonNumeric = true;

        CountriesMap = [
    {
        "name": "Colombia",
        "dial_code": "+57",
        "code": "CO"
    },
]

        let selectCodes = document.querySelector('select[data-name="country-codes"]');
        /******** code for Country codes application *********/
        CountriesMap.forEach(element => {
                let e = document.createElement("option");
                e.value = "";
                e.innerText = element.name;
                e.value = element.dial_code;
                selectCodes.appendChild(e);
        });

        selectCodes.addEventListener('change', () => {
                injectCountryCode();
        })

        /********** code for length validation ***************/
        const inpt = document.querySelector('input[data-type="phone"]');
        inpt.classList.add("unvalid-num");

        inpt.setAttribute('maxLength', max);

        inpt.addEventListener('keydown', () => {
                handleInput(event);
        })
        /***************************************************/
        function handleInput(ev) {

                let inputChar = ev.key;
                console.log(ev.key);

                const onlyContainsNumbers = (str) => /^\d+$/.test(str);

                if(ev.key !== "Backspace" && !onlyContainsNumbers(ev.key) && blockNonNumeric) {
                        ev.preventDefault();
                }
                
                if (inpt.value.length < min || inpt.value.length > max) {
                        unvalidInpt(inpt);
                } else {
                        validInpt(inpt);
                }
        }
        function validInpt(inpt) {
                inpt.classList.remove("unvalid-num");
                inpt.classList.add("valid-num");
        }
        function unvalidInpt(inpt) {
                inpt.classList.remove("valid-num");
                inpt.classList.add("unvalid-num");
        }

        function injectCountryCode() {
                let selectedCode = selectCodes.value;
                alert(selectedCode);
                inpt.value = selectedCode;
        }
</script>

Pueden descargar la plantilla completamente configurada desde aquí

Recuerda tener tu dominio personalizado conectado para que los códigos funcionen en tus páginas

3 Likes

PLANTILLA PARA VALIDACIÓN Y LIMITACIÓN DEL CAMPO DE NÚMERO DE TELÉFONO PARA PERÚ

Puedes descargarla directamente desde aquí

:light_bulb:Recuerda tener tu dominio personalizado conectado para que los códigos funcionen en tus páginas.