Estoy haciendo una validación de formulario del lado del servidor. Al hacer clic en el botón [enviar], mi código agrega el campo _validate al formulario y envía el formulario al servidor en modo AJAX. El formulario de éxito debe enviarse, pero no sucedió.
$(document).ready(function(){ $('form[action*="#validate"]').on('submit', function(e){ var $form = $(this); var $submit = $form.find('input[type=submit]'); var $validate = $form.find('input[name=_validate]'); if ($validate.length>0 && $validate.val()=='success') // already validated { //e.returnValue = true; it's deprecated console.log('validated'); // #2 return true; // supposed form submit } e.preventDefault(); if ($validate.length==0) $form.append('<input type="hidden" name="_validate" value="asking" />'); $validate = $form.find('input[name=_validate]'); var params = $form.serialize(); $.ajax({ url: $form.attr('action'), method: $form.attr('method').toLowerCase(), data: params }) .then(function(response, statusText, xhrObj){ var json = JSON.parse(response); if (json._status!='ok') { // writing messages } else { $validate.val('success'); $form.attr('action', $form.attr('action').replace('#validate', '')); $form.submit(); // #1 } }); }); });form.submit() marcado con #1 hace una subsecuencia en la llamada de envío, el script imprime validado ( #2 ) pero el formulario no se envía: no hay consultas en la consola de red, no hay mensajes de error o advertencia.