Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

214
Vistas
la llamada ajax aún se publica en los datos después de hacer clic en Cancelar en el cuadro de alerta. ¿Por qué?

Tengo varias llamadas ajax que publican datos en la base de datos a través de métodos web cuando se hace clic en el botón Enviar.

Cuando un usuario hace clic en el botón Enviar, aparece un cuadro de alerta que le pide al usuario que verifique su pedido antes de enviarlo a la base de datos.

Cuando todo se ve bien y el usuario hace clic en el botón Enviar, los datos se publican correctamente en la base de datos.

Esta parte está funcionando bien.

El problema es que cuando el usuario hace clic en Cancelar, los datos aún se publican en la base de datos, aunque esta vez, los registros en blanco se publican en la base de datos.

Mi pregunta es ¿por qué se siguen publicando datos cuando el usuario hace clic en cancelar?

Al hacer clic en la opción Cancelar, no debería activarse la llamada ajax.

¿Qué me estoy perdiendo?

Aquí hay un código relevante. Se proporcionará más código si se solicita.

 function getAllCreditorData() { var data = []; $('tr.data-contact-person8').each(function () { var creditname = $(this).find('.creditorname01').val(); var creditaddress = $(this).find('.creditoraddress01').val(); var creditincome = $(this).find('.creditorincome01').val(); var alldata = { 'myCreditorname': creditname, 'myCreditoraddress': creditaddress, 'myCreditorincome': creditincome } data.push(alldata); }); console.log(data); return data; } $("#btnSubmit").click(function (event) { event.preventDefault(); if (confirm('Please review your order before submitting. Click Ok to submit; Cancel to make additional changes')) { var empComplete = false, sourceComplete = false, spouseComplete = false, dividentComplete = false, reimbursedComplete = false, honorariaComplete = false, giftComplete = false, orgComplete = false, creditorComplete = false; function checkComplete() { if (empComplete && sourceComplete && spouseComplete && dividentComplete && reimbursedComplete && honorariaComplete && giftComplete && orgComplete && creditorComplete) { $("#result").text("Thank you! You have successfully completed this form"); } } } $("#result").text(""); var data = JSON.stringify(getAllEmpData()); console.log(data); $.ajax({ url: 'disclosures.aspx/SaveEmpData', type: 'POST', contentType: 'application/json; charset=utf-8', data: JSON.stringify({ 'empdata': data }), async: false, success: function () { empComplete = true; checkComplete(); }, error: function () { alert("Error while inserting data"); } });

Gracias por tu ayuda

about 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Su llamada ajax está fuera de su condición if.

 $("#btnSubmit").click(function (event) { event.preventDefault(); if (confirm('Please review your order before submitting. Click Ok to submit; Cancel to make additional changes')) { $.ajax({ url: 'disclosures.aspx/SaveEmpData', type: 'POST', contentType: 'application/json; charset=utf-8', data: JSON.stringify({ 'empdata': data }), async: false, success: function () { empComplete = true; checkComplete(); }, error: function () { alert("Error while inserting data"); } }); var empComplete = false, sourceComplete = false, spouseComplete = false, dividentComplete = false, reimbursedComplete = false, honorariaComplete = false, giftComplete = false, orgComplete = false, creditorComplete = false; function checkComplete() { if (empComplete && sourceComplete && spouseComplete && dividentComplete && reimbursedComplete && honorariaComplete && giftComplete && orgComplete && creditorComplete) { $("#result").text("Thank you! You have successfully completed this form"); } } } $("#result").text(""); var data = JSON.stringify(getAllEmpData()); console.log(data);
about 4 years ago · Santiago Trujillo Denunciar

0

Debe incluir el código $ajax dentro de la declaración if que le pide al usuario que confirme () si desea enviar o no.

Su instrucción if verifica la confirmación del usuario. Pero el código del ajax nos llama no dentro del paréntesis de la declaración if. Está fuera de ellos. Por lo tanto, se ejecutará ya sea que la declaración sea verdadera o no.

-RH

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda