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

216
Visualizações
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

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

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);
over 4 years ago · Santiago Trujillo Relatório

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

over 4 years ago · Santiago Trujillo 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