Foros > Javascript: problema con validacion

  1. kayserpc

    Mensajes [2] - Enviado el Martes 18 de Marzo de 2008 a las 10:27hs

    ACLARO, ES LA PRIMERA VEZ QUE MANEJO JAVA, Y ESTOY PERDIDISIMO, PERO NECESITO RESOLVER ESTO.


    TENGO UN FORMULARIO EN ASP QUE VALIDA UNAS FECHAS PARA RECUPERAR LA CONTRASE?A. LA FUNCION QUE COMPARA ESTA EN JAVASCRIPT Y EL TEMA ES QUE EN i.e. ANDA PERO EN FIREFOX NO, Y NO PUEDO ENCONTRAR EL PROBLEMA. SI ME DAN UNA MANO SE LOS VOY A AGRADECER. AQUI POSTEO EL CODIGO DE LA FUNCION PRIMERO, Y LUEGO DEL FORMULARIO ASP


    FUNCIONES:


    /******************************************************************************
    ** Compara dos fechas y devuelve TRUE si fechaMayor es mayor que fechaMenor **
    ******************************************************************************/
    function comparaFecha(fechaMenor, fechaMayor)
    {
    tmpstrFecExpira = DateInputFix(fechaMayor);
    tmpSplitFecExpira = tmpstrFecExpira.split("/");

    dia1 = eval(tmpSplitFecExpira[0]);
    mes1 = eval(tmpSplitFecExpira[1]) - 1;
    ano1 = eval(tmpSplitFecExpira[2]);
    fecExpira = new Date(ano1, mes1, dia1);

    tmpstrFecPublic = DateInputFix(fechaMenor);
    tmpSplitFecPublic = tmpstrFecPublic.split("/");

    dia2 = eval(tmpSplitFecPublic[0]);
    mes2 = eval(tmpSplitFecPublic[1]) - 1;
    ano2 = eval(tmpSplitFecPublic[2]);
    fecPublic = new Date(ano2, mes2, dia2);

    difMilSeg = fecExpira - fecPublic;
    if (difMilSeg >= 0)
    return true;
    else
    return false;
    }


    /**********************************************
    ** Verifica que id_date sea una fecha v?lida **
    **********************************************/
    function isDate(id_date)
    {
    var tmpDate,tmpDateParts,tmpHourParts = new String;
    var tmpDay,tmpMonth,tmpYear,tmpHour,tmpMinute = new Number;
    var hasHour=new Boolean;
    var tmpSplit=new Array;
    var months=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
    var reDate=/^\d+\/\d+\/\d+$/;
    var reHour=/^\d+:\d+$/;

    tmpDate=DateInputFix(id_date);
    tmpSplit=tmpDate.split(" ");

    switch(tmpSplit.length)
    {
    case 1:
    hasHour=false;
    break;
    case 2:
    hasHour=true;
    break;
    default:
    return(false);
    }

    if (!reDate.test(tmpSplit[0])) { return(false); }

    tmpDateParts=tmpSplit[0].split("/");'modifique

    if (hasHour==true)
    {
    if (!reHour.test(tmpSplit[1])) { return(false); }

    tmpHourParts=tmpSplit[1].split(":");
    tmpHour=parseInt(tmpHourParts[0],10);
    tmpMinute=parseInt(tmpHourParts[1],10);

    if (tmpHour<0 || tmpHour>24 || tmpMinute<0 || tmpMinute>59) { return(false); }
    }

    tmpDay=parseInt(tmpDateParts[0],10);
    tmpMonth=parseInt(tmpDateParts[1],10);
    tmpYear=parseInt(tmpDateParts[2],10);

    if (tmpMonth<1 || tmpMonth>12 || tmpDay>31 || tmpDay<1) { return(false); }
    if (tmpDateParts[2].length != 4) { return(false); }
    if ((tmpYear % 4==0 && tmpYear % 100!=0) || tmpYear % 400==0) { months[1]=29; }
    if (tmpDay>months[tmpMonth-1]) { return(false); }
    if (tmpYear > 9999) { return(false); }
    return(true);
    }


    /*********************************************
    ** Devuelve una fecha con barras divisorias **
    *********************************************/
    function DateInputFix(df_date)
    {
    df_date=df_date.replace(/ +/g," ");
    df_date=df_date.replace(/^ /,"");
    df_date=df_date.replace(/ $/,"");
    df_date=df_date.replace(/ *\/ */g,"/");
    df_date=df_date.replace(/ *: */,":");

    return(df_date);
    }


    AHORA VA EL FORMULARIO ASP:


    ----------------------------------------------------------------------------------------------------------------------------




    PRUEBA




publicidad