Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

469
Visualizações
¿Cómo puedo hacer que el evento @blur funcione correctamente? Nuxtjs

Estoy tratando de activar una función que valida un campo de entrada cuando pierde el foco usando nuxtjs. Cuando enfoco fuera del campo de entrada, la función no se activa, pero se activa cuando enfoco y empiezo a escribir en otro o en el mismo campo de entrada.

 <div class="control"> <input class="input" type="text" ref="email" @blur="validateMail()" v-model="email_p" name="email" /> </div>

esta es la llamada de funcion

 methods: { validateMail(){ let value = this.$refs.email.value let mailformat = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/ if (value.match(mailformat)) { //validation passed } else { this.msg.email = 'Enter a valid email'; } }, }
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Esto puede funcionar bien

 <template> <div class="control"> <input ref="email" v-model="email_p" class="input" type="text" name="email" @blur="validateMail" /> message: {{ msg.email }} </div> </template> <script> export default { data() { return { email_p: '', msg: { email: '', }, } }, methods: { validateMail(value) { const mailformat = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/ if (value.target.value.match(mailformat)) { // validation passed } else { this.msg.email = 'Enter a valid email' } }, }, } </script>

No necesita usar $refs para acceder al elemento, puede acceder al evento directamente.
Si desea obtener el value a través $refs , deberá esperar a que se active una tick completa para obtener el nuevo valor real. Por lo tanto, use el event pasado por @blur , más simple, más limpio y menos desordenado.

Además, value.target.value es importante porque recibe un evento y no el elemento HTML en sí.

PD: el evento también se puede escribir como @blur="validateMail($event)" si quieres ser más explícito pero no es obligatorio (ya lo está pasando por sí mismo).

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda