Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: pedro,, en 29 de Enero 2016, 23:57
-
Hola. Teniendo el siguiente código:
<!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?
Comprueba que el único campo del formulario no esté vacío o sea null y devuelve false al formulario en caso de que el nombre esté vacío o sea null.
b) ¿Qué ocurre si en lugar de onsubmit="return validarForm()" escribes onsubmit="validarForm()"? ¿Por qué?
Que el formulario se enviará, aun estando vacío.
Porque no hay nada en este código que lo impida.
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?
Viendo como se comporta el código, diría que la función al no devolver false por que el formulario está bien rellenado, devuelve true por defecto.
Saludos.
-
Buenas tardes Pedro veo las respuestas correctas. En la pregunta a) de forma más amplia podemos decir que el código evita el envío del formulario si el campo nombre está vacío o tiene contenido no válido. Si como respuesta a un evento submit de un formulario se tiene un return false, el formulario no es enviado, como se explica al comienzo del ejercicio.
En la pregunta b), necesitamos un return como respuesta al submit. Si no lo tenemos, el formulario se enviará aunque la función devuelva false.
En la pregunta c) yo diría que la función no devuelve nada, aunque podrían hacerse pruebas para comprobar esto. Al no devolverse nada, el formulario se envía porque no se produce un return false como respuesta al evento submit.
Saludos,