Envío de formulario que causa ‘Se excedió el tamaño máximo de la stack de llamadas’

Creé un formulario que se usa para revisar a una persona en un sitio web; sin embargo, cuando se envía el formulario, no ocurre nada y la consola muestra una “Cantidad máxima de llamadas excedida”. Espero que alguien pueda ayudarme a señalar el error en mi código impidiendo que funcione. Aquí está el código del formulario:

Saving

Aquí está el código JS:

 /* intercept submit event */ $( "#fReviewMe" ).submit(function(event) { checkForm(); event.preventDefault(); }); /* form validation */ function checkForm(){ var errors = 0; var cuname = $('#uname').val(); var ccompany = $('#business').val() var creview = $('#reviewmsg').val() var cstars = $('#rStar').val() var eMessage = ""; $('#dFormErrors').hide(); $('input').removeClass('validFalse'); $('textarea').removeClass('validFalse'); if ($('#tnc').is(':checked')) { } else{ eMessage = "Please tick to accepts out terms and conditions"; errors++; } if(cstars.length < 1){ $("input").blur(); $("textarea").blur(); eMessage = "Please choose a star rating"; errors++; } if(creview.length < 1){ $('#reviewmsg').focus(); $('#reviewmsg').addClass('validFalse'); eMessage = "Please add your review"; errors++; } else{ $('#reviewmsg').addClass('validTrue'); } if(ccompany.length < 1){ $('#business').focus(); $('#business').addClass('validFalse'); eMessage = "Please tell us your business name"; errors++; } else{ $('#business').addClass('validTrue'); } if(cuname.length  0){ $('#dFormErrors').slideDown(); $('#sEMessage').html(eMessage) } else{ $('#dButtonsReviewForm').hide(); $('#dSavingReviewForm').show(); $('#fReviewMe').submit(); } }; 

Gracias por adelantado

Reemplazar $('#fReviewMe').submit(); con:

 $('#fReviewMe')[0].submit(); 

llamando al método de nodo DOM submit para evitar enviar jQuery handler ‘loop’.

El problema se debe a que está activando el evento de submit dentro de su controlador submit() , lo que causa un bucle infinito. Debes modificar tu lógica:

 $("#fReviewMe").submit(checkForm); function checkForm(e) { // all your validation logic here... if (errors > 0) { e.preventDefault(); // < stop form submission on error $('#dFormErrors').slideDown(); $('#sEMessage').html(eMessage) } else{ $('#dButtonsReviewForm').hide(); $('#dSavingReviewForm').show(); } }