hola, intento hacer doble validación de los datos de un formulario, una por parte del cliente, con javascript y la otra en el servidor,con php.
la de php, me funciona bien, xo la de javascript no me hace nada. Os dejo el código a ver si me podéis ayudar.
Código HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../estilos.css">
<script type="text/javascript" language="javascript">
function itrim(str){return str.replace(/^\s+/,"");}
function ftrim(str){return str.replace(/\s+$/,"");}
function alltrim(str){return ftrim(itrim(str));}
function validar(formulario) {
//return false;
var caracteres = /^([a-z]|[A-Z]|á|é|í|ó|ú|ñ|ü|\s)+$/;
var dni = /^\d{8}[A-Z]$/;
var mail = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3,4})+$/;
var letras = ['T','R','W','A','G','M','Y','F','P','D','X','B','N','J','Z','S','Q','V','H','L','C','K','E','T'];
var numero = 5;//formulario.elements.length;
for(i=0; i<numero; i++){
var valor = formulario.elements[i].value;
valor = alltrim(valor);
if((valor=="") || (valor.length==0) || (/^\s+$/.test(valor))){
alert("No puede haber campos vacíos");
return false;
}
if ((i==0 || i==1 || i==2) && (!caracteres.test(valor))){
alert("Contenido de los datos personales no válido");
return false;
}
if ((i==4) && (!(dni.test(valor)) || (valor.charAt(8) != letras[(valor.substring(0,8))%23]))){
alert("Dni no válido");
return false;
}
if ((i==5) && (!(mail.test(valor)))){
alert("E-mail no válido");
return false;
}
}
return true;
}
</script>
</head>
<body>
<div id="contenedor">
<?php include("menuAdm.php"); ?>
<div id="cuerpoAdmin" align="center">
<br>
<form onSubmit="validar(this);" name="altaTecnico" method="post" action="IDU/insertTecnico.php">
<table align="center" cellspacing="10px">
<tr align="center">
<td>Nombre:</td>
<td><input type="text" name="nombre"></td>
</tr>
<tr align="center">
<td>Apellido 1:</td>
<td><input type="text" name="apellido1"></td>
</tr>
<tr align="center">
<td>Apellido 2:</td>
<td><input type="text" name="apellido2"></td>
</tr>
<tr align="center">
<td>Dni:</td>
<td><input type="text" name="dni"></td>
</tr>
<tr align="center">
<td>E-mail:</td>
<td><input type="text" name="mail"></td>
</tr>
<tr align="center">
<td>Equipo:</td>
<td><select name="equipo">
<optgroup label="Equipos existentes">
<?php
include("../auxi/conexionbd.php");
$conexion = conectaBD();
$sql = "select nombre,categoria from equipo";
$resultado = mysql_query($sql,$conexion);
while ($row=mysql_fetch_array($resultado)){
printf ("<option>%s (%s)</option>",$row["nombre"],$row["categoria"]);
}
mysql_free_result($resultado);
mysql_close($conexion);
?>
</optgroup>
</select></td>
</tr>
<tr align="center">
<td>Función:</td>
<td><select name="funcion">
<optgroup label="Funciones existentes">
<option>entrenador</option>
<option>delegado</option>
</optgroup>
</select></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" name="enviar" value="Introducir técnico">
<input type="reset" name="cancelar" value="Cancelar"></td>
</tr>
</table>
</form>
</div>
<?php include("../include/pie.php"); ?>
</div>
</body>
</html>