Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/09/2009, 10:57
vili86
 
Fecha de Ingreso: septiembre-2009
Mensajes: 281
Antigüedad: 14 años, 8 meses
Puntos: 0
Funcion muy extraña (SELECT && TEXT)

Hola amigos soy nuevo en el foro y mi pregunta pasa por lo siguiente.
Tengo un formulario que me calcula la edad cuando el usuario introduce su fecha de naciomiento, no es nada del otro mundo bien la duda que tengo ahora que una vez calculada la edad entra en juego un select por categorias S8, S10 ...... bien si la edad que a calculado mi funcion es <=8 y la categiria que elgio es S8 esta correcto todo pero ahi sale mi duda


Código javascript:
Ver original
  1. <script language="JavaScript">
  2.     function valida_envia(){
  3.         var cate = document.form1.categoria.selectedIndex;
  4.         var cat = document.form1.categoria.options[cate].value;
  5.         var edad = document.form1.edad.value;
  6.         edad = parseInt(edad);
  7.         if (edad<5){
  8.        
  9.           //document.form1.edad.focus()
  10.           return   alert("Debe tener 5 años por lo menos.")
  11.        }[COLOR="Red"]
  12.         if (edad <=8)&&(document.form1.categoria.value.selectedIndex=="S8"){
  13.      return   alert("Esta todo correcto.")         
  14.        
  15.     else
  16.     return   alert("No corresponde la categoria con la edad.") 
  17.      }
  18. [/COLOR]
  19.          
  20.  
  21.    
  22.     }
  23.  
  24.    function calcular_edad()
  25.     {
  26.         var indiced = document.form1.dia.selectedIndex;
  27.         var dia = document.form1.dia.options[indiced].value;
  28.    
  29.         var indicem = document.form1.mes.selectedIndex;
  30.         var mes = document.form1.mes.options[indicem].value;
  31.    
  32.         var indicea = document.form1.ano.selectedIndex;
  33.         var ano = document.form1.ano.options[indicea].value;
  34.        
  35.        
  36.         //var ano = document.form1.ano.value;
  37.         //ano = parseInt(ano);
  38.                
  39.         //Calculo la fecha de hoy
  40.          hoy = new Date();
  41.            
  42.         //El año de la fecha que recibo solo tiene 2 cifras hay que cambiarlo a 4
  43.         //ano = 1900 + ano;
  44.    
  45.         //Resto los años de las dos fechas
  46.         //-1 porque no se si ha cumplido años ya este año
  47.         edad = hoy.getFullYear()- ano - 1;
  48.        
  49.         //Si resto los meses y me da menor que 0 entonces no ha cumplido años.
  50.         //Si da mayor si ha cumplido
  51.         //+ 1 porque los meses empiezan en 0
  52.         if ( hoy.getMonth() + 1 - mes < 0)
  53.            return edad
  54.            
  55.         if ( hoy.getMonth() + 1 - mes > 0)  
  56.            return edad+1
  57.    
  58.         //Si resto los dias y me da menor que 0 entonces no ha cumplido años.
  59.         //Si da mayor o igual si ha cumplido
  60.         if ( hoy.getUTCDate() - dia >= 0)
  61.            return edad + 1
  62.    
  63.         return edad
  64.     }
  65.     </script>
Código html:
Ver original
  1. </td
  2.                 >
  3.             </tr>
  4.             <td> Categoria a Jugar:
  5.                 </td>
  6.                 <td> <select name="categoria" id="categoria">
  7.                     <option value=""> </option>
  8.                     <option value="S8"> Sub 8</option>
  9.                     <option value="S10 "> Sub 10 </option>
  10.                     <option value="S12"> Sub 12</option>
  11.                     <option value="S14"> Sub 14</option>
  12.                     <option value="S16"> Sub 16</option>
  13.                     <option value="S18"> Sub 18</option>
  14.                            
  15.                 </select></td>
  16.             </tr>
  17.             </tr>
  18.             <tr>
  19.                 <td> Fecha de Nacimiento </td>
  20.                 <td>
  21.                <select name="dia" size="1">
  22.             <option value=""> dia</option>
  23.             <option value="01"> 1</option>
  24.             <option value="02"> 2</option>
  25.             <option value="03"> 3</option>
  26.             <option value="04"> 4</option>
  27.             <option value="05"> 5</option>
  28.             <option value="06"> 6</option>
  29.             <option value="07"> 7</option>
  30.             <option value="08"> 8</option>
  31.             <option value="09"> 9</option>
  32.             <option value="10"> 10</option>
  33.             <option value="11"> 11</option>
  34.             <option value="12"> 12</option>
  35.             <option value="13"> 13</option>
  36.             <option value="14"> 14</option>
  37.             <option value="15"> 15</option>
  38.             <option value="16"> 16</option>
  39.             <option value="17"> 17</option>
  40.             <option value="18"> 18</option>
  41.             <option value="19"> 19</option>
  42.             <option value="20"> 20</option>
  43.             <option value="21"> 21</option>
  44.             <option value="22"> 22</option>
  45.             <option value="23"> 23</option>
  46.             <option value="24"> 24</option>
  47.             <option value="25"> 25</option>
  48.             <option value="26"> 26</option>
  49.             <option value="27"> 27</option>
  50.             <option value="28"> 28</option>
  51.             <option value="29"> 29</option>
  52.             <option value="30"> 30</option>
  53.          </select>
  54.                  <select name="mes" size="1">
  55.                 <option value=""> Mes </option>
  56.                 <option value="01"> Enero</option>
  57.                 <option value="02"> Febrero</option>
  58.                 <option value="03"> Marzo</option>
  59.                 <option value="04"> Abril</option>
  60.                 <option value="05"> Mayo</option>
  61.                 <option value="06"> Junio</option>
  62.                 <option value="07"> Julio</option>
  63.                 <option value="08"> Agosto</option>
  64.                 <option value="09"> Septiembre</option>
  65.                 <option value="10"> Octubre</option>
  66.                 <option value="11"> Noviembre</option>
  67.                 <option value="12"> Diciembre</option>
  68.               </select>
  69.            
  70.                 <select name="ano" size="1">
  71.                 <option value=""> año</option>
  72.                 <option value="1975"> 1975</option>
  73.                 <option value="1976"> 1976</option>
  74.                 <option value="1977"> 1977</option>
  75.                 <option value="1978"> 1978</option>
  76.                 <option value="1979"> 1979</option>
  77.                 <option value="1980"> 1980</option>
  78.                 <option value="1981"> 1981</option>
  79.                 <option value="1982"> 1982</option>
  80.                 <option value="1983"> 1983</option>
  81.                 <option value="1984"> 1984</option>
  82.                 <option value="1985"> 1985</option>
  83.                 <option value="1986"> 1986</option>
  84.                 <option value="1987"> 1987</option>
  85.                 <option value="1988"> 1988</option>
  86.                 <option value="1989"> 1989</option>
  87.                 <option value="1990"> 1990</option>
  88.                 <option value="1991"> 1991</option>
  89.                 <option value="1992"> 1992</option>
  90.                 <option value="1993"> 1993</option>
  91.                 <option value="1994"> 1994</option>
  92.                 <option value="1995"> 1995</option>
  93.                 <option value="1996"> 1996</option>
  94.                 <option value="1997"> 1997</option>
  95.                 <option value="1998"> 1998</option>
  96.                 <option value="1999"> 1999</option>
  97.                 <option value="2000"> 2000</option>
  98.                 <option value="2001"> 2001</option>
  99.                 <option value="2002"> 2002</option>
  100.                 <option value="2003"> 2003</option>
  101.                 <option value="2004"> 2004</option>
  102.                 <option value="2005"> 2005</option>
  103.                 <option value="2006"> 2006</option>
  104.                 <option value="2007"> 2007</option>
  105.                 <option value="2008"> 2008</option>
  106.                 </select>
  107.                  
  108.                 </td>
  109.                 </tr>
  110.                
  111.                
  112.             <tr>
  113.                             <tr>
  114.                 <td>Edad:</td>
  115.                 <td><input type="text" name="edad" size="10" maxlength="2" onKeyPress="return validar_num(event)" onClick="this.form.edad.value=calcular_edad()" onBlur="valida_envia()" readonly="true"/>
  116.                 </td>
  117.              </tr>
  118.             <tr>
  119.                
  120.             <tr>
  121.                 <td colspan="2" align="center"> <input type="submit" value="Enviar" >  
  122.                    <input  type="button" value="Cancelar">
  123.            </table>
  124.          </form>
  125.          
  126.        
  127.          
  128. </center>
  129.  
  130.    
  131.  
  132.        
  133. </body>
  134. </html>

Bien la funcion valida_envia funciona correctamente pero cuando integro el codigo en rojo no ya no me calcula la edad ????????
¿Que debo hacer para poder solucionar esto ?