Hola chicos,
pongo mis soluciones de este tema.
Otra forma de detener el envío de un formulario se basa en que si el código de respuesta a un evento submit es el valor booleano false, no se producirá el envío del formulario. En otro caso, sí se producirá el envío. Examina el siguiente código y responde a las cuestiones que se muestran a continuación:
<!DOCTYPE html>
<html><head><script>
function validarForm() {
var x = document.forms["elForm1"]["nombre"].value;
if (x==null || x=="") { alert("El formulario no puede enviarse sin rellenar el nombre");
return false; }
}
</script></head>
<body><form style ="margin:30px;" name="elForm1" action="http://aprenderaprogramar.com" onsubmit="return validarForm()" method="get">
Nombre: <input type="text" name="nombre">
<input type="submit" value="Enviar">
</form>
</body></html>
a) ¿Qué cometido cumple este código?
Este código sirve de validacion para el input de name="nombre", cuando el campo esté vacio o sea nulo el formulario no podrá ser enviado, saliendo por pantalla un mensaje de alert y devolviendo como false a onsubmit.
b) ¿Qué ocurre si en lugar de onsubmit="return validarForm()" escribes onsubmit="validarForm()"? ¿Por qué?
Se necesita un return como respuesta al onsubmit, si no lo tenemos da igual que la función de validación devuelva true o false, ya que será enviado de todas las maneras.
c) Si x no es null ni es vacío, ¿qué devuelve la función validarForm()? ¿Qué implicaciones tiene esto en relación al envío del formulario?
No devuelve nada, pero al no devolver false el submit se realiza y se envia el formulario.
Saludos.