Foros del Web » Programando para Internet » Javascript »

Validar Fecha

Estas en el tema de Validar Fecha en el foro de Javascript en Foros del Web. HOLA A TODOS MI PEGUNTAS ES COMO PUEDO VALIDAR LA FECHA CON LOS SGTES DATOS ESTE ES MI SCRIPT EN EL CUAL VALIDO DISTINTOS DATOS, ...
  #1 (permalink)  
Antiguo 16/01/2006, 10:01
Avatar de calavera  
Fecha de Ingreso: diciembre-2005
Mensajes: 113
Antigüedad: 18 años, 4 meses
Puntos: 0
Validar Fecha

HOLA A TODOS

MI PEGUNTAS ES COMO PUEDO VALIDAR LA FECHA CON LOS SGTES DATOS
ESTE ES MI SCRIPT EN EL CUAL VALIDO DISTINTOS DATOS, PERO KIERO VALIDAR LA FECHA, CON UN SCRIPT KE ESTA A CONTINUACION DE ESTO:


Código HTML:
<script language="JavaScript">
function validar(form)
{
var error = "Por favor, antes de enviar el formulario,\ncomplete todos los campos:\n\n";
var a = ""

    if (form.N_Serie.value == "") { a += " Nº de Serie\n"; }
   /* if (form.Tipo.value == "") { a += " Tipo\n"; }
    if (form.Marca.value == "") { a += " Marca\n"; }*/
    /*if (form.Modelo.value == "") { a += " Modelo\n"; }*/
    if (form.Fecha_Compra.value == "") { a += " Fecha de Compra\n"; }
    if (form.N_Factura.value == "") { a += " Nº de Factura\n"; }
	if (form.Rut_Proveedor.value == "") { a += " Rut del Proveedor\n"; }
/*    if (form.Rut_Asignado.value == "") { a += " Rut Asignado\n"; }*/
    if (form.Descripcion.value == "") { a += " Descripcion\n"; }

    if (a != "") { alert(error + a); return true; }

form.submit()
}

</script> 
ESTE SCRIPT LO KIERO PONER PARA VALIDAR LA FECHA COMO PUEDO HACERLO, O SI ALGUIEN ME AYUDA A ENCONTRAR O MAS SENCILLO, ESTO SE VALIDA EN UN CAMPO TEXTO.

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

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

   function finMes(oTxt){
    var nMes = parseInt(oTxt.value.substr(3, 2), 10);
    var nAno = parseInt(oTxt.value.substr(6), 10);
    var nRes = 0;
    switch (nMes){
     case 1: nRes = 31; break;
     case 2: nRes = 28; 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 + (((nMes == 2) && (nAno % 4) == 0)? 1: 0);
   }

   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();
     } else alert("Fecha correcta");
    }
   }

<form name="Ingresa" action="Procesar.php" method="post" >
<table width="576" border="0" cellpadding="0" cellspacing="0" class="checkbox">
<!--DWLayoutTable-->
<tr>
<td width="46" height="19">
<td width="35">
<td width="37">&nbsp;</td>
<td width="83">&nbsp;</td>
<td width="96">&nbsp;</td>
<td width="24">&nbsp;</td>
<td width="37">&nbsp;</td>
<td width="25">&nbsp;</td>
<td width="58">&nbsp;</td>
<td width="119">&nbsp;</td>
<td width="16">&nbsp;</td>
<!--DWLayoutTable-->
<tr>
<td height="29" colspan="10" valign="top"><div align="center">
<table width="100%" border="1">
<!--DWLayoutTable-->
<tr>
<td width="100%" height="20" valign="top" bgcolor="#FFCC33"> <div align="center"><font color="#666666" size="3" face="Courier New, Courier, mono"><strong>.:<font color="#000000">EQUIPOS</font>:.</strong></font></div></td>
</tr>
</table>
<font color="#666666" size="4"></font></div>
<td>&nbsp;</td>
<tr>
<td height="21" colspan="10" valign="top"><hr></td>
<td></td>
</tr>
<tr>
<td height="2"></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td height="12" colspan="2" valign="top"><font size="1">N&ordm; de Serie:</font></td>
<td colspan="2" rowspan="3" valign="top"> <input type="text" name="N_Serie">
</td>
<td colspan="2" valign="top"><font size="1">Fecha de Compra:</font></td>
<td colspan="3" rowspan="3" valign="top"> <input name="Fecha_Compra" type="text" ></td>
<td colspan="2" valign="top"><font color="#CC0033" size="1">Ej: (2000-11-05)</font></td>
</tr>
<tr>
<td height="4"></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td colspan="2" rowspan="2" valign="top"><font size="1">Tipo:</font></td>
<td height="1"></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td rowspan="5" valign="top"> <select name="Tipo" id="select">
</select></td>
<td height="11"></td>
<td rowspan="2" valign="top"><font size="1">N&ordm; de Factura:</font></td>
<td></td>
<td colspan="3" rowspan="4" valign="top"> <input type="text" name="N_Factura"></td>
<td></td>
<td></td>
</tr>
<tr>
<td height="1"></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td height="4"></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td height="1"></td>
<td></td>
<td></td>
<td colspan="2" rowspan="3" valign="top"><font size="1">Rut del Proveedor:</font></td>
<td></td>
<td></td>
</tr>
<tr>
<td height="3"></td>
<td></td>
<td></td>
<td colspan="3" rowspan="4" valign="top"> <input name="Rut_Proveedor" type="text" size="0" maxlength="10"></td>
<td></td>
<td></td>
</tr>
<tr>
<td rowspan="2" valign="top"><font size="1">Marca:</font></td>
<td height="8"></td>
<td rowspan="4" valign="top"> <select name="Marca" id="Marca">
</select></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td height="4"></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td height="2"></td>
<td></td>
<td></td>
<td rowspan="4" valign="top"><font size="1">Rut Asignado:</font></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td height="6"></td>
<td></td>
<td></td>
<td></td>
<td rowspan="4" valign="top"> <select name="Rut_Asignado" id="Rut_Asignado">
</select></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td height="2"></td>
<td></td>
<td rowspan="4" valign="top"> <select name="Modelo" id="Modelo">
</select></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td colspan="2" rowspan="2" valign="top"><font size="1">Modelo:</font></td>
<td height="4"></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td height="8"></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td height="6"></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td height="18"></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td height="12" colspan="2" valign="top"><font size="1">Descripci&oacute;n:</font></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td height="19">&nbsp;</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td height="137"></td>
<td></td>
<td colspan="6" rowspan="2"> <textarea name="Descripcion" cols="40" rows="10" wrap="PHYSICAL"></textarea>
<input type="button" name="Submit" value="Ingresar" onClick="validar(this.form)">
</td>
<td>
<td>
<td> </tr>
</table>
</form>
  #2 (permalink)  
Antiguo 16/01/2006, 10:49
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Mi recomendación es que pongas tres campos en el formulario (dia,mes,año) y así te ahorras un montón de trabajo. Suerte
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 11:13.