Creé un formulario que envía su entrada a una base de datos a través de una página PHP, y funciona muy bien, excepto que no puedo hacer que funcione el siguiente script.
La intención es enviar el formulario pero sin saltar a createaccount.php. Sin embargo, cuando uso el script jQuery a continuación, evita que se envíen los datos del formulario. Este código es de un proyecto de hace unos años, y en ese entonces funcionaba bien. Parece que también funciona para todos los demás en StackOverflow, así que... confuso.
Si ayuda, estoy usando Chrome. Y también intenté usar e en lugar de event, y en lugar de preventDefault() también probé stopPropagation() y stopImmediatePropagation(), pero estos tienen los mismos resultados. Cualquier idea sería apreciada. ¡Gracias por tu tiempo!
HTML
<form action="createaccount.php" method="post" id="form"> Username:<input type="text" name="username"> Password:<input type="password" name="password"> Email:<input type="email" name="email"> <input type="submit" name="submit" value="Submit"> </form>JavaScript (jQuery)
$(document).ready(function() { $("#form").on('submit', function(event){ event.preventDefault(); }); })después de event.preventDefault() agregue lo siguiente:
let form = document.getElementById('form') form.submit()y su formulario será enviado
event.preventDefault(); Detiene el envío del formulario.
después de esa línea podrías hacer una solicitud $.ajax
$(document).ready(function() { $("#form").on('submit', function(event){ event.preventDefault(); $.ajax({ url: 'createaccount.php', type: 'post', data: $("form").serialize(), success: function(data) {// do something if you want to give feedback} }) }); })