John Hebert Trindade Posted October 10, 2023 at 11:08 PM Report Share #631901 Posted October 10, 2023 at 11:08 PM Boa noite, fiz a mascara para 3 campos de datas conforme abaixo, mas infelizmente não esta a funcionar o que fiz de errado? //mascara para datas const maskdata = document.querySelectorAll('#data_emissao, #data_validade, #data_nasc') maskdata.addEventListener('keypress', () => { let inputLength = maskdata.value.length // MAX LENGHT 14 cnp if (inputLength == 2 || inputLength == 5) { maskdata.value += '/' } }) Link to comment Share on other sites More sharing options...
Ivo Vicente Posted October 10, 2023 at 11:26 PM Report Share #631902 Posted October 10, 2023 at 11:26 PM (edited) Boa noite, Não podes adicionar um addEventListener ao array maskdata. Tens que ter um eventListener para cada elemento do array // Exemplo da alteração necessária maskdata.forEach((elem) => elem.addEventListener('keypress', () => { // .... Validação das mascaras }) ) Edited October 10, 2023 at 11:26 PM by Ivo Vicente Feito é melhor que perfeito Link to comment Share on other sites More sharing options...
John Hebert Trindade Posted October 11, 2023 at 07:55 PM Author Report Share #631909 Posted October 11, 2023 at 07:55 PM Ivo Vicente, infelizmente não resultou, mas pode ter sido eu que não soube fazer. Coloquei da seguinte maneira: //mascara para datas const maskdata = document.querySelectorAll('#data_emissao, #data_validade, #data_nasc') // Exemplo da alteração necessária maskdata.forEach((elem) => elem.addEventListener('keypress', () => { // .... Validação das mascaras let inputLength = maskdata.value.length // MAX LENGHT 14 cnp if (inputLength == 2 || inputLength == 5) { maskdata.value += '/' } }) ) Link to comment Share on other sites More sharing options...
Solution Ivo Vicente Posted October 12, 2023 at 01:06 PM Solution Report Share #631916 Posted October 12, 2023 at 01:06 PM Viva A parte da validação das mascaras estás a testar o tamanho do array de elementos e não do elemento, e quando tentas aplicar a barra (/) estás novamente a aplicar no array de elementos e não no elemento. Basicamente, dentro do forEach onde tens maskdata, tens que trocar por elem. Nada como fazer uns console.log e ver os valores e o estado das variáveis no processo 1 Report Feito é melhor que perfeito Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now