Jump to content

Máscara para datas


John Hebert Trindade
Go to solution Solved by Ivo Vicente,

Recommended Posts

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

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 by Ivo Vicente

Feito é melhor que perfeito

Link to comment
Share on other sites

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

  • Solution

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

  • Vote 1

Feito é melhor que perfeito

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.