¡Estaba tratando de completar todo el formulario antes de actualizar! Quiero decir, si el nombre es incorrecto, no quiero que la página se actualice presionando enviar, ¡quiero que espere hasta que complete todas las entradas y todo salga bien!
Intenté devolver falso después de cada instrucción if pero no funciona. ¡Intenté e.preventDefault ninguno funciona! Alguna ayuda ?
function validateForm(){ var name = document.loginForm.name.value var email = document.loginForm.email.value var password = document.loginForm.password.value var re = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/; if (name.length == 0) return alert("Name wrong"); else if (re.test(email) == false) return alert('Enter a valid email'); else if (password.length < 6) return alert('password should be more than 6 characters'); else return alert('Form submitted') } <div> <form action="" name="loginForm" onsubmit=validateForm()> <label for="">name</label> <input name="name" type="text"> <label for="">email</label> <input name="email" type="email"> <label for="">password</label> <input name="password" type="password"> <button type="submit">Submit</button> <button type="reset">reset</button> </form> </div>Debe evitar el comportamiento predeterminado de enviar un formulario utilizando el objeto de evento. Dentro de su función validateForm() :
function validateForm(e){ e.preventDefault(); ... }Asegúrese de tomar el objeto de evento como un parámetro dentro de la función. Esto evitará que la página se actualice cada vez que se envíe el formulario.