Vuelvo sobre mis pasos porque estoy teniendo muchos problemas que supongo que son de base. ¿Me podéis ayudar, por favor? Estaré muy agradecido.
Este formulario, lanza la validación hecha en JS mediante ventanas de alert.
Comprueba nombre, comprueba apellido y cuando termina, a pesar de que los campos están vacíos sigue adelante, cuando debería detenerse
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<script>
function enviar()
{
<!--recogida de variables-->
var ok = true;
var name = document.getElementById("nombre").value;
var user = document.getElementById("apellido").value;
if (name==null || name == "")
{
alert("Este campo no puede estar vacio");
ok = false
}
if (user==null || user == "")
{
alert("Este campo no puede estar vacio");
ok = false
}
}
</script>
</head>
<body>
<form id="prueba" method="post" action="resultado.php" onsubmit="return enviar(this)">
Tu nombre <input text id="nombre" name="nombre"><br />
Tus apellido <input text id="apellido" name="apellido"><br />
<input type="submit" value="Enviar" />
<input type="reset" value="Borrar" />
</form>
</body>
</html>
En el siguiente formulario, en vez de incluir un action en el form, le digo que me cargue una nueva página web cuando las validaciones sean correctas. Sin embargo, cuando termina la validación en vez de lanzar la nueva página, la url me cambia por esto validacionyenvio.html?nombre=dede&apellido=dedede. Algo que también me aparece si los campos están vacíos después de las validaciones.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<script>
function enviar()
{
<!--recogida de variables-->
var ok = true;
var name = document.getElementById("nombre").value;
var user = document.getElementById("apellido").value;
if (name==null || name == "")
{
alert("Este campo no puede estar vacio");
ok = false
}
if (user==null || user == "")
{
alert("Este campo no puede estar vacio");
ok = false
}
else
{
window.location.assign("resultado.php")
}
ok = true;
}
</script>
</head>
<body>
<form id="prueba" onsubmit="return enviar(this)">
Tu nombre <input text id="nombre" name="nombre"><br />
Tus apellido <input text id="apellido" name="apellido"><br />
<input type="submit" value="Enviar" />
<input type="reset" value="Borrar" />
</form>
En esta otra ocasión he cambiado document.getElementById("nombre").value; por document.getElementsbyName para terminar de entender cuál es la diferencia. Esto es importante porque después la información la voy a insertar en una bbdd. En este caso, no sucede absolutamente nada y no sé por qué
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<script>
function enviar()
{
<!--recogida de variables-->
var ok = true;
var name = document.getElementsByName("nombre");
var user = document.getElementsByName("apellido");
if (name==null || name == "")
{
alert("Este campo no puede estar vacio");
ok = false
}
if (user==null || user == "")
{
alert("Este campo no puede estar vacio");
ok = false
}
else
{
window.location.assign("resultado.php")
}
ok = true;
}
</script>
</head>
<body>
<form id="prueba" method="post" onsubmit="return enviar(this)">
Tu nombre <input text name="nombre"><br />
Tus apellido <input text name="apellido"><br />
<input type="submit" value="Enviar" />
<input type="reset" value="Borrar" />
</form>
</body>
</html>