Tengo que pasar un formulario a una ruta, pero antes de eso quiero usar un modal para solicitar la confirmación del usuario. Estoy usando preventDefault() para detener el envío y manejar la confirmación, pero ahora necesito continuar con el envío normal del formulario:
<script type="text/javascript"> $(".btn-close").click((x) => { x.preventDefault(); var text = $(this).val(); $("#modal_body").html(text); $("#removeConfirm").click(() => { //$(this).submit(); //I need to continue with the form submission here console.log("Confirmed!"); }); }); </script>"texto" es un valor que estoy pasando al modal;
"#removeConfirm" es el botón de confirmación en el modal;
Intenté "$(this).submit()" pero no funciona, ¿alguna idea?
preventDefault() no impedirá que se envíe su formulario.
Es probable que sea más fácil hacer que el controlador de envío se active desde el modal en sí, ya que realmente no puede tener los datos colgados en el limbo como está proponiendo (a menos que escriba los valores en una tienda de orden superior, por supuesto).
$(this).submit() no funciona porque "this" es el botón $(".btn-close") y no el formulario.
Para el formulario, en lugar de usar un botón de envío, use un botón con una función Javascript y administre allí el envío, algo como:
<label>Name</label> <input type="text" name="name" value="" /> <br/> <label>Phone</label> <input type="text" name="phone" value="" /> <br/> <a id="processBtn" class="btn btn-default" href="javascript:;" >Process</a> <script> $('#processBtn').click(function(e){ e.preventDefault(); if (doStuff()) { console.log("there we go!"); $("#waitform").submit(); } }); function doStuff() { console.log("i'm sending the form in a sec"); return true; //you can also add a condition and return false if you don't want to submit the form } </script>