Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

202
Views
e.preventDefault no funciona en Axios con Vue JS

En mi proyecto Laravel, he creado un método en mi instancia de Vue para verificar la disponibilidad de recursos en el envío del formulario. Estoy comprobando la disponibilidad con una llamada AJAX usando axios. Cuando uno o más recursos no están disponibles, obtengo una matriz con mensajes de error como respuesta. En consecuencia, quiero evitar que mi formulario se envíe usando e.preventDefault(). Sin embargo, esto no está funcionando y me pregunto por qué.

Cuando uso e.preventDefault() fuera de mi solicitud de axios, se impide que se envíe el formulario. Entonces, ¿supongo que debo extender el alcance de la 'variable e'? Entonces, ¿cómo puedo hacer esto?

Este es mi código:

 checkAvailability(e){ let date = document.getElementById('date').value; let errorList = document.getElementById('errors'); date = date.split('-').reverse().join('-'); axios.get('/materials/check-availability', { params: { date: date, time: this.time, ek: this.ekNumber, dk: this.dkNumber, ck: this.ckNumber, zv: this.zvNumber, ton: this.tonNumber } }) .then(function(response) { let errors = response.data; if(errors.length > 0) { e.preventDefault(); errorList.innerHTML = ''; for(let i = 0; i < errors.length; i++) { let li = document.createElement('li'); li.innerText = errors[i]; errorList.appendChild(li); } errorModal.show(); } }) .catch(function(error){ console.log(error); }); // e.preventDefault(); }
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

No puede llamar a e.preventDefault() dentro de una promesa y esperar que funcione. En el momento en que se llame, el comportamiento predeterminado ya habrá ocurrido, ya que una promesa volverá en algún momento en el futuro (async).

Deberá llamar a Prevent Default tan pronto como se envíe el formulario y luego enviarlo condicionalmente usted mismo. Vea a continuación un ejemplo básico.

 checkAvailability(e){ e.preventDefault(); let date = document.getElementById('date').value; let errorList = document.getElementById('errors'); const yourForm = document.querySelector('form'); date = date.split('-').reverse().join('-'); axios.get('/materials/check-availability', { params: { date: date, time: this.time, ek: this.ekNumber, dk: this.dkNumber, ck: this.ckNumber, zv: this.zvNumber, ton: this.tonNumber } }) .then(function(response) { let errors = response.data; if(errors.length > 0) { errorList.innerHTML = ''; for(let i = 0; i < errors.length; i++) { let li = document.createElement('li'); li.innerText = errors[i]; errorList.appendChild(li); } errorModal.show(); } else { yourForm.submit(); { }) .catch(function(error){ console.log(error); }); }
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!