Foros del Web » Programación para mayores de 30 ;) » Java »

Posibilidad de reutilizar unas funciones.

Estas en el tema de Posibilidad de reutilizar unas funciones. en el foro de Java en Foros del Web. Desde ya gracias por el tiempo dedicado a leer esto, en fin... Tengo una funcion (son varias ne realidad) que realizan la actividad de completar ...
  #1 (permalink)  
Antiguo 06/07/2012, 16:00
Avatar de Panicav  
Fecha de Ingreso: diciembre-2007
Ubicación: Rosario, Santa Fe - Argentina.
Mensajes: 135
Antigüedad: 16 años, 4 meses
Puntos: 8
Posibilidad de reutilizar unas funciones.

Desde ya gracias por el tiempo dedicado a leer esto, en fin...

Tengo una funcion (son varias ne realidad) que realizan la actividad de completar de forma automatica unos campos "Select" de formulario con los días según el mes, osea click en enero y en el selecto delimita los díasa 31 etc.

Funciona a la perfección, al código lo e rescatado del foro, lo acondicione minimamente para que me sea util pero hay algo que no puedo lograr.

Tengo la necesidad que esta funcion se aplique en varios campos, pero solo se me aplica sobre el primer grupo de campos que aparece y el resto no, es posible realizar dicha acción?

les dejo mi código.

Código Javascript:
Ver original
  1. <script>
  2.         function esBisiesto(year) {
  3.             return (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) ? true : false;
  4.             }
  5.         function limpiaSelect(elSelect) {
  6.             while( elSelect.hasChildNodes() ) elSelect.removeChild( elSelect.firstChild );
  7.             }
  8.         function aniadeOpcion(elSelect, texto, valor) {
  9.             var laOpcion=document.createElement("OPTION");
  10.             laOpcion.appendChild( document.createTextNode(texto) );
  11.             laOpcion.setAttribute("value",valor);
  12.             elSelect.appendChild(laOpcion);
  13.             }
  14.         function rellenar_ano(elSelect) {
  15.             for(var a=2014;a>=2010;a--)
  16.             aniadeOpcion(elSelect, a.toString(), a.toString() );
  17.             }
  18.         var meses=["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"];
  19.         var meses_n=["01","02","03","04","05","06","07","08","09","10","11","12"];
  20.         function rellenar_mes(elSelect) {
  21.             for(var a=0;a<meses.length;a++)
  22.             aniadeOpcion(elSelect, meses[a], meses_n[a] );
  23.             }
  24.         function rellenar_dia(elSelect, ano, mes ) {
  25.             var ultimo_dia;
  26.              // febrero
  27.              if(mes==2)
  28.              ultimo_dia=esBisiesto(ano)?29:28;
  29.               // acaban en 31
  30.               else if( mes==1 || mes==3 || mes==5 || mes==7 || mes==8 || mes==10 || mes==12)
  31.               ultimo_dia=31;
  32.                else
  33.                ultimo_dia=30;
  34.                for(var a=1; a<=ultimo_dia; a++) {
  35.                 aniadeOpcion(elSelect, a, a);
  36.             }}
  37. </script>
Código HTML:
Ver original
  1. <select name="ano" id="ano" onchange="actualizar()"></select>
  2.         <select name="mes" id="mes" onchange="actualizar()"></select>
  3.         <select name="dia" id="dia"> </select>
Código Javascript:
Ver original
  1. <script>
  2. var ano=document.getElementById("ano");
  3. var mes=document.getElementById("mes");
  4. var dia=document.getElementById("dia");
  5. rellenar_ano(ano);
  6. rellenar_mes(mes);
  7. rellenar_dia(dia,2016,0);
  8. function actualizar() {
  9.     limpiaSelect(dia);
  10.     rellenar_dia(dia, ano.options[ano.options.selectedIndex].value, mes.options[mes.options.selectedIndex].value );
  11. }
  12. </script>

Bien lo que yo necesito es poder tener varios campos dentro de otros formularios y que la función se aplique a las mismas de manera correcta, ejemplo:

Código HTML:
Ver original
  1.         <select name="ano" id="ano" onchange="actualizar()"></select>
  2.         <select name="mes" id="mes" onchange="actualizar()"></select>
  3.         <select name="dia" id="dia"> </select>
  4. var ano=document.getElementById("ano");
  5. var mes=document.getElementById("mes");
  6. var dia=document.getElementById("dia");
  7. rellenar_ano(ano);
  8. rellenar_mes(mes);
  9. rellenar_dia(dia,2016,0);
  10. function actualizar() {
  11.     limpiaSelect(dia);
  12.     rellenar_dia(dia, ano.options[ano.options.selectedIndex].value, mes.options[mes.options.selectedIndex].value );
  13. }
  14. </form>
  15.  
  16.         <select name="ano" id="ano" onchange="actualizar()"></select>
  17.         <select name="mes" id="mes" onchange="actualizar()"></select>
  18.         <select name="dia" id="dia"> </select>
  19. var ano=document.getElementById("ano");
  20. var mes=document.getElementById("mes");
  21. var dia=document.getElementById("dia");
  22. rellenar_ano(ano);
  23. rellenar_mes(mes);
  24. rellenar_dia(dia,2016,0);
  25. function actualizar() {
  26.     limpiaSelect(dia);
  27.     rellenar_dia(dia, ano.options[ano.options.selectedIndex].value, mes.options[mes.options.selectedIndex].value );
  28. }
  29. </form>
  30.  
  31.         <select name="ano" id="ano" onchange="actualizar()"></select>
  32.         <select name="mes" id="mes" onchange="actualizar()"></select>
  33.         <select name="dia" id="dia"> </select>
  34. var ano=document.getElementById("ano");
  35. var mes=document.getElementById("mes");
  36. var dia=document.getElementById("dia");
  37. rellenar_ano(ano);
  38. rellenar_mes(mes);
  39. rellenar_dia(dia,2016,0);
  40. function actualizar() {
  41.     limpiaSelect(dia);
  42.     rellenar_dia(dia, ano.options[ano.options.selectedIndex].value, mes.options[mes.options.selectedIndex].value );
  43. }
  44. </form>

Es eso posible? desde ya muchas gracias.
  #2 (permalink)  
Antiguo 07/07/2012, 11:17
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Posibilidad de reutilizar unas funciones.

Hola:

java y javascript son lenguajes que no tienen nada que ver. Prueba en el foro de javascript.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 08/07/2012, 15:54
Avatar de Panicav  
Fecha de Ingreso: diciembre-2007
Ubicación: Rosario, Santa Fe - Argentina.
Mensajes: 135
Antigüedad: 16 años, 4 meses
Puntos: 8
Respuesta: Posibilidad de reutilizar unas funciones.

Cita:
Iniciado por chuidiang Ver Mensaje
Hola:

java y javascript son lenguajes que no tienen nada que ver. Prueba en el foro de javascript.

Se bueno.
Disculpas estás en lo correcto, por si a alguien le es útil lo resolví de la mano de php agregándole una variable única a cada ID de esa manera no se pisan las variables, les dejo el código, saludos.

Código PHP:
echo'
        <select name="ano" id="ano'
.$variable.'" onchange="actualizar'.$variable.'()"> </select>
       <select name="mes" id="mes'
.$variable.'" onchange="actualizar'.$variable.'()"></select>
      <select name="dia" id="dia'
.$variable.'"></select>
<script type="text/javascript" >
var ano'
.$variable.'=document.getElementById("ano'.$variable.'");
var mes'
.$variable.'=document.getElementById("mes'.$variable.'");
var dia'
.$variable.'=document.getElementById("dia'.$variable.'");
rellenar_ano(ano'
.$variable.');
rellenar_mes(mes'
.$variable.');
rellenar_dia(dia'
.$variable.','.$GLOBALS[PRMT_fecha_ano_fin].',0);
function actualizar'
.$variable.'() {
    limpiaSelect(dia'
.$variable.');
    rellenar_dia(dia'
.$variable.', ano'.$variable.'.options[ano'.$variable.'.options.selectedIndex].value, mes'.$variable.'.options[mes'.$variable.'.options.selectedIndex].value );

</script>'


Etiquetas: string
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 19:08.