Foros del Web » Programando para Internet » Javascript »

No funciona una FAQ (Otra vez MAL UBICADA en las FAQ´s)

Estas en el tema de No funciona una FAQ (Otra vez MAL UBICADA en las FAQ´s) en el foro de Javascript en Foros del Web. Hola, esta funcion funciona perfectamente pero como soy medio torpe no puedo evitar que se envie el formulario, probe con llamar la funcion OnSubmit() pero ...
  #1 (permalink)  
Antiguo 13/09/2004, 15:07
Avatar de midpunto  
Fecha de Ingreso: enero-2004
Ubicación: España Palma de mallorca
Mensajes: 118
Antigüedad: 20 años, 3 meses
Puntos: 0
Esto funciona pero tiene un problema parami...

Hola, esta funcion funciona perfectamente pero como soy medio torpe no puedo evitar que se envie el formulario, probe con llamar la funcion OnSubmit() pero de esta manera ni siquiera se ejecuta.... ojala alguien me pueda ayudar .....
gracias.

Cita:
Iniciado por Kaopectate
P: ¿Como puedo validar un rango de fechas para que ambos valores sean no vacíos, válidos, y la fecha hasta sea mayor o igual que la fecha desde?

R: [ver ejemplo]

Código PHP:
<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(32), 10);
    var 
nAno parseInt(oTxt.value.substr(6), 10);
    var 
nRes 0;
    switch (
nMes){
     case 
1nRes 31; break;
     case 
2nRes 28; break;
     case 
3nRes 31; break;
     case 
4nRes 30; break;
     case 
5nRes 31; break;
     case 
6nRes 30; break;
     case 
7nRes 31; break;
     case 
8nRes 31; break;
     case 
9nRes 30; break;
     case 
10nRes 31; break;
     case 
11nRes 30; break;
     case 
12nRes 31; break;
    }
    return 
nRes + (((nMes == 2) && (nAno 4) == 0)? 10);
   }

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

   function 
valMes(oTxt){
    var 
bOk false;
    var 
nMes parseInt(oTxt.value.substr(32), 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 
0nAno.lengthi++){
      
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));
     return 
bOk;
    }
   }

   function 
fechaMayorOIgualQue(fec0fec1){
    var 
bRes false;
    var 
sDia0 fec0.value.substr(02);
    var 
sMes0 fec0.value.substr(32);
    var 
sAno0 fec0.value.substr(64);
    var 
sDia1 fec1.value.substr(02);
    var 
sMes1 fec1.value.substr(32);
    var 
sAno1 fec1.value.substr(64);
    if (
sAno0 sAno1bRes true;
    else {
     if (
sAno0 == sAno1){
      if (
sMes0 sMes1bRes true;
      else {
       if (
sMes0 == sMes1)
        if (
sDia0 >= sDia1bRes true;
      }
     }
    }
    return 
bRes;
   }

   function 
valFechas(){
    var 
bOk false;
    if (
valFecha(document.f1.fec0)){
     if (
valFecha(document.f1.fec1)){
      if (
fechaMayorOIgualQue(document.f1.fec1document.f1.fec0)){
       
bOk true;
       
alert("Ok");
      } else {
       
alert("Rango inválido");
       
document.f1.fec1.focus();
      }
     } else {
      
alert("Fecha inválida");
      
document.f1.fec1.focus();
     }
    } else {
     
alert("Fecha inválida");
     
document.f1.fec0.focus();
    }
   }

  
</script>
 </head>
 <body>
  <form name="f1">
   <table>
    <tr>
     <td align="right">
      Fecha inicial (dd/mm/aaaa): 
     </td>
     <td>
      <input type="text" size="10" name="fec0">
     </td>
    </tr>
    <tr>
     <td align="right">
      Fecha final (dd/mm/aaaa): 
     </td>
     <td>
      <input type="text" size="10" name="fec1">
     </td>
    </tr>
    <tr>
     <td colspan="2" align="center">
      <input type="button" name="val" value="Validar" onclick="valFechas()">
     </td>
    </tr>
   </table>
  </form>
 </body>
</html> 

Última edición por midpunto; 13/09/2004 a las 15:08
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 15:51.