Probé un onsubmit="return redirect()" y onsubmit="redirect()" donde llama a una función que tiene una window.location.href = 'successfulSignUp.html'; dentro del código HTML a continuación en el área <script> . Sin suerte con eso.
También intenté lo mismo pero en el campo <input type="submit"> pero tampoco tuve suerte.
Tengo una action="mailto:signup@mydomain.com?Subject=User Sign Up" dentro del formulario porque quiero que el usuario complete el formulario y luego abra una nueva pestaña de Correo para que el usuario lo envíe.
No busco implementar una base de datos, ni un archivo php donde lo envíe.
En todos los sentidos, la página web ignora absolutamente la función de redirección () que creé cada vez que el usuario hace clic en ella después de completar el formulario con los criterios de entrada.
Aquí está mi código:
<form id="signUpForm" action="mailto:signup@mydomain.com?Subject=User Sign Up" onsubmit="return redirect()" method="post" enctype="text/plain"> <input type="text" id="name" name="Name" placeholder="Name *" required> <input type="text" id="surnames" name="Surnames" placeholder="Surnames *" required><br><br> <input type="email" id="emailForm" name="Email" placeholder="Email"> <input type="tel" id="phoneNumber" name="Phone number" placeholder="Phone number *" required minlength="9"><br><br> <input type="text" id="username" name="Username" placeholder="Username *" required> <input type="password" id="password" name="Password" placeholder="Password*" required> <p id="requiredFields"><span style="color: red">|</span> Fields marked with a * are required.</p> <input id="registerNow" type="submit" value="Register"><br><br </form>Un código JavaScript que tengo es:
<script type="text/javascript"> function redirect(){ window.location.href = 'successfulSignUp.html'; } </script>No puede hacer que el navegador navegue a dos URL a la vez (a menos que abra ventanas emergentes / marcos).
Puede navegar a mailto:... o a successfulSignup.html .
Ahora, dijiste:
No busco implementar una base de datos, ni un archivo php donde lo envíe.
Sin embargo, debe considerar usar una solución del lado del servidor (ya sea escrita en PHP o en algún otro lenguaje de programación). Se puede configurar cualquier enfoque del lado del servidor para enviar los datos por correo electrónico.
Esto resolverá dos problemas:
mailto: que es muy poco confiable (nunca lo usaría fuera de una Intranet controlada, e incluso allí, un enfoque del lado del servidor sería más fácil la mayor parte del tiempo).Simplemente envíe un correo electrónico en la función JavaScript:
<form id="signUpForm" onsubmit="redirect(event)"> <input type="text" id="name" name="Name" placeholder="Name *" required> <input type="text" id="surnames" name="Surnames" placeholder="Surnames *" required><br><br> <input type="email" id="emailForm" name="Email" placeholder="Email"> <input type="tel" id="phoneNumber" name="Phone number" placeholder="Phone number *" required minlength="9"><br><br> <input type="text" id="username" name="Username" placeholder="Username *" required> <input type="password" id="password" name="Password" placeholder="Contraseña *" required> <p id="requiredFields"><span style="color: red">|</span> Fields marked with a * are required.</p> <input id="registerNow" type="submit" value="Register"><br><br> </form>y función de redireccionamiento:
function redirect(e) { e.preventDefault(); window.open('mailto:test@example.com?subject=subject&body=body'); //example email window.location.replace('https://www.google.com'); // example url }Para enviar correos electrónicos, uso esto: Cómo enviar un correo electrónico desde JavaScript , pero puede usar alguna biblioteca si lo desea.
¡RESUELTO! (un tanto)
Descubrí el camino, pero no exactamente el camino correcto. Con esto quiero decir que las personas serán redirigidas a la página de registro exitosa cada vez que hagan clic en el botón, pero si completan el formulario, también serán redirigidos a la página de registro exitosa Y a la aplicación de correo predeterminada que se enviará con todos los datos. en el interior.
Aquí está el código final (que lo resuelve):
<form id="signUpForm" action="mailto:signup@mydomain.com" method="post" enctype="text/plain"> <input id="registerNow" type="submit" value="Register" onclick="redirectFun()";> <script type="text/javascript"> function redirectFun(){ setTimeout(function () { window.location = "successfulSignUp.html" }, 1); }; </script>