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

325
Views
cómo enviar el formulario y dejar de enviar el formulario según la respuesta de ajax

Estoy usando el formulario con la etiqueta onsubmit. Y en la función onsubmit llamaré a ajax y devolveré verdadero en la función de éxito y falso en la sección de error. Pero siempre se ha presentado el formulario.

html

 <form action="/" method="post" onsubmit="return formsubmit()">

guion

 function formsubmit() { "use strict"; var isBasic = $(".test").val() //this is hidden element if (isBasic === "true") { return true; } if (isBasic === "false") { $.ajax({ type: "post", url: "/", data: "sample", success: function (data) { if (data.success) { return true; } if (!data.success) { return false; } }, error: function () { } }); } }

}

esto no funciona para mi siempre formulario enviado. Por favor ayúdame a resolver esto.

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Tiene razón al desear un valor de retorno de su función de "envío de formulario", pero no puede regresar de una llamada asíncrona (la llamada ajax es asíncrona).

Reestructure su código para capturar un clic de botón en lugar de responder a un envío de formulario. En el evento de clic de botón, ejecute su llamada ajax, pasando una función de devolución de llamada a la llamada ajax. En la función de devolución de llamada, decida si envía o no su formulario.

over 4 years ago · Santiago Trujillo Report

0

cambia tu código así.

 function formsubmit() { "use strict"; var isBasic = $(".test").val(); //this is hidden element if (isBasic === "false") { $.ajax({ type: "post", url: "/", data: "sample", success: function (data) { if (data.success) { return true; } if (!data.success) { return false; } }, error: function () { } }); }else{ return true; } return false; } }
over 4 years ago · Santiago Trujillo Report

0

function formsubmit() { "use strict"; var isBasic = $(".test").val() //this is hidden element if (isBasic === "true") { return true; } if (isBasic === "false" && !$(this).attr('submit-suggest')) { $.ajax({ type: "post", url: "/", data: "sample", success: function (data) { if (data.success) { $(this).attr('submit-suggest',1); $(this).submit(); } if (!data.success) { $(this).attr('submit-suggest',0); } }, error: function () { $(this).attr('submit-suggest',0); } }); return false; } return true; }
over 4 years ago · Santiago Trujillo 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!