Soy nuevo en JavaScript. Necesito evitar que se envíe el formulario si alguna de las condiciones de validación es falsa.
ex:-
if((document.getElementById("name").value)==""){ alert("'Name' field can not be empty"); return false; } Intenté <form onsubmit="return validate();"> y <form onsubmit="event.preventDefault(); validate();"> . Ninguno de esos ayudó. El primero muestra el mismo mensaje de alerta dos veces. El segundo solicita continuamente todos los mensajes de alerta. lo que quiero es,
¿Hay alguna forma de lograr esto usando JavaScript (sin bibliotecas de JavaScript)?
Lo siento si hay errores gramaticales, el inglés no es mi primer idioma :(
Debe llamar a preventDefault del objeto de evento que viene como un parámetro que obtiene de la función de devolución de llamada de EventListener. Como eso:
... <head> <script> window.addEventListener("load",init); function init() {document.getElementById("form").addEventListener("submit",function(e) {e.preventDefault();});} </script> </head> <body> <form id="form"> <input type="submit"> </form> </body> ...Puede llamar a ese parámetro como quiera y también puede definir esa función en otro lugar.
... <script> window.addEventListener("load",init); function init() {document.getElementById("form").addEventListener("submit",handleSubmit);} function handleSubmit(event) {event.preventDefault();} </script> ...