Foros del Web » Programando para Internet » Javascript »

validar campo de fecha no obligatorio

Estas en el tema de validar campo de fecha no obligatorio en el foro de Javascript en Foros del Web. Hola, como estan todos??? Gracias por atender a mi inconbeniente. Bueno el titulo lo dice todo, tengo un formulario donde quiero validar unos campos tipo ...
  #1 (permalink)  
Antiguo 29/01/2002, 13:35
Avatar de fenix4  
Fecha de Ingreso: noviembre-2001
Ubicación: Caracas
Mensajes: 226
Antigüedad: 23 años
Puntos: 1
validar campo de fecha no obligatorio

Hola, como estan todos???

Gracias por atender a mi inconbeniente.
Bueno el titulo lo dice todo, tengo un formulario donde quiero validar unos campos tipo fecha!!! pero no importa si no los llenan!!!

Ya tengo un codigo, con que valido si un dato es requerido o no, si es mail, si esta entre un rango de numero... puedo tener un codigo mas completo, con esto nuevo que quiero colocar lo de la fecha???

;)

P.S.L.P.S
  #2 (permalink)  
Antiguo 29/01/2002, 15:21
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 10 meses
Puntos: 38
Re: validar campo de fecha no obligatorio

Mira, hice este código para validar fechas no obligatorias, solo tienes que adaptarlo al sitio donde deseas validar.

<html>
<head>
<script language="JavaScript">

function esDigito(sChr){
var sCod = sChr.charCodeAt(0);
return ((sCod > 47) && (sCod < 58));
}

function valSep(oTxt){
var bOk = false;
bOk = bOk || ((oTxt.value.charAt(2) == "-") && (oTxt.value.charAt(5) == "-"));
bOk = bOk || ((oTxt.value.charAt(2) == "/") && (oTxt.value.charAt(5) == "/"));
return bOk;
}

function finMes(oTxt){
var nMes = parseInt(oTxt.value.substr(3, 2), 10);
var nRes = 0;
switch (nMes){
case 1: nRes = 31; break;
case 2: nRes = 29; break;
case 3: nRes = 31; break;
case 4: nRes = 30; break;
case 5: nRes = 31; break;
case 6: nRes = 30; break;
case 7: nRes = 31; break;
case 8: nRes = 31; break;
case 9: nRes = 30; break;
case 10: nRes = 31; break;
case 11: nRes = 30; break;
case 12: nRes = 31; break;
}
return nRes;
}
continua...
  #3 (permalink)  
Antiguo 29/01/2002, 15:22
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 10 meses
Puntos: 38
Re: validar campo de fecha no obligatorio

...continuación.


function valDia(oTxt){
var bOk = false;
var nDia = parseInt(oTxt.value.substr(0, 2), 10);
bOk = bOk || ((nDia >= 1) && (nDia <= finMes(oTxt)));
return bOk;
}

function valMes(oTxt){
var bOk = false;
var nMes = parseInt(oTxt.value.substr(3, 2), 10);
bOk = bOk || ((nMes >= 1) && (nMes <= 12));
return bOk;
}

function valAno(oTxt){
var bOk = true;
var nAno = oTxt.value.substr(6);
bOk = bOk && ((nAno.length == 2) || (nAno.length == 4));
if (bOk){
for (var i = 0; i < nAno.length; i++){
bOk = bOk && esDigito(nAno.charAt(i));
}
}
return bOk;
}

function valFecha(oTxt){
var bOk = true;
if (oTxt.value != ""){
bOk = bOk && (valAno(oTxt));
bOk = bOk && (valMes(oTxt));
bOk = bOk && (valDia(oTxt));
bOk = bOk && (valSep(oTxt));
if (!bOk){
alert("Fecha inválida");
oTxt.value = "";
oTxt.focus();
}
}
}

</script>
</head>
<body>
<form name="f1">
<p>
Escriba cualquier cosa:
<input type="text" size="20" name="xxx">
</p>
<p>
Escriba una fecha (dd/mm/aaaa):
<input type="text" size="10" name="fec" onblur="valFecha(this)">
</p>
<p>
Escriba cualquier cosa:
<input type="text" size="20" name="yyy">
</p>
</form>
</body>
</html>
  #4 (permalink)  
Antiguo 30/01/2002, 08:06
Avatar de fenix4  
Fecha de Ingreso: noviembre-2001
Ubicación: Caracas
Mensajes: 226
Antigüedad: 23 años
Puntos: 1
Re: validar campo de fecha no obligatorio

muchas muchas gracias kaopectate, probare el codigo!!! espero me funcione, si alguien más tiene otra cosa tmbioen sera bienvenida!!!

P.S.L.P.S
  #5 (permalink)  
Antiguo 30/01/2002, 09:30
Avatar de fenix4  
Fecha de Ingreso: noviembre-2001
Ubicación: Caracas
Mensajes: 226
Antigüedad: 23 años
Puntos: 1
Re: validar campo de fecha no obligatorio

Conchale, gracias en la verdad me acabas de ahorrar un trabajon, es bueno salir de apuros con personas que se dedican a ayudar, ya que yo no se nada de js...

:) :) :)

P.S.L.P.S
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:47.