Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/02/2006, 12:32
brainstorm
 
Fecha de Ingreso: septiembre-2005
Ubicación: España
Mensajes: 78
Antigüedad: 18 años, 8 meses
Puntos: 0
Validar fecha introducida en un solo campo de texto

Hola a todos.
Tengo el siguiente script cojido de este foro que me va perfecto he intendo de mil formas validar un campo de texto con el siguiente formato:
numero entre 01 y 31 / numero entre 01 y 12 / numero entre 1911 y 1987
es decir una fecha pero sin desglosarla en campos dia / mes / año sino todo junto en un unico campo de texto. El tema esta en que normalmente paso la fecha con una ventana flotante tipica de las agencias de viajes, pero tambien quiero que se permita la introduccion en el campo de texto a "mano" pero me provoca mucho errores y me gustaria poder verificar que se ha introducido correctamente.


Código PHP:
Código PHP:
<?php BEGIN__VBULLETIN__CODE__SNIPPET <html
<
head
<
style
form,td{font:normal 10px/10px verdana;} 
input{font:normal 10px/10px verdana;border:solid 1px black
</
style
    <
title>Prueba</title
    <
script
//Script original de KarlanKas para forosdelweb.com 
//Adaptado a firefox gracias a JavierB ;-) 

    
colorMal="#eeddee"
    
colorBien="white"
     
    
regla=new Array() 

    
regla[0]="valor.length<3"
    
regla[1]="isNaN(valor) || valor<600000000"
    
regla[2]="valor.lastIndexOf('@')!=valor.indexOf('@') || valor.indexOf('@')<2 || valor.lastIndexOf('.')<valor.length-4 || valor.lastIndexOf('.')>valor.length-3"

    
mensaje=new Array() 


    
mensaje[0]="Por favor, introduzca el nombre"
    
mensaje[1]="El número de teléfono introducido no es válido"
    
mensaje[2]="correo inválido"
     
    function 
comprobar(){  
    
errores="";  
    
mensaje2=""
    for(
a=0;a<regla.length;a++){  
    
valor=document.forms[0].elements[a].value;  
    if(eval(
regla[a])){ 
    
mensaje2=(mensaje[a])?mensaje[a]:"Por favor, rellene el campo "+document.forms[0].elements[a].name
////////

    
document.forms[0].elements[a].focus();

////////
    
errores+=mensaje2+"<br>";  
    
document.forms[0].elements[a].style.background=colorMal;}  
    else{
document.forms[0].elements[a].style.background=colorBien;}  
    }  
    
pepe=document.getElementById("herror"); 
    
pepe.style.background=(errores!="")?colorMal:colorBien;  
    
pepe.style.border=(errores!="")?"solid 1px black":"none";  
    
pepe.innerHTML=errores;  

    return (
errores==""
    }  
      
     
    
</script> 
</head> 

<body> 
<form onsubmit="return comprobar()"> 
<table><tr><td>nombre:</td><td><input type=text name=nombre></td><td style="font:normal 10px/15px verdana;padding:5px 5px 5px 5px;"rowspan=10 valign="top" id="herror"></td></tr> 
<tr><td>telefono:</td><td><input type=text name="telefono"></td></tr> 
<tr><td>e-mail:</td><td><input type=text name="email"></td></tr> 
<tr><td colspan=2 align="center"><input type="submit" value="enviar"></td></tr></table> 

</form> 


</body> 
</html>

Gracias de antemano.