Ver Mensaje Individual
  #6 (permalink)  
Antiguo 04/07/2007, 16:58
Avatar de Shiryu_Libra
Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 11 meses
Puntos: 88
Re: predeterminar un select formado automaticamente

de hecho te entendi desde el primero, solo que un post sin bromas, no es un post ultimamente, y pues mirando tu codigo que me has proporcionado
Cita:
var dias = c.split(",");
for (var i=0;i<dias.length;i++){
var
nueva_opcion = adOpt(select_dias, i, dias[i], dias[i]);
if(
dia == i )
nueva_opcion.selected = true;
}
esta perfecto... solo que un detallito amigo.... nada serio...
solo que en esta parte de la evaluacion
Cita:
if( dia == i )
nueva_opcion.selected = true;
}
debemos poner
Cita:
if( dia == i )
nueva_opcion.options[i].selected = true;
}
para que efectivamente selecciones lo que anteriormente escribiste

muy amable derkenuke, como siempre

dejo el script completo... se que habra mas, pero lo importante es enriquecer nuestro foro

SCRIPT:
Código HTML:
<script language="JavaScript">
   var mes;
   var qmes;
   var a="Elejir Dia,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28";
   var b="Elejir Dia,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29";
   var c="Elejir Dia,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30";
   var d="Elejir Dia,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31";
   var e="Elejir Mes,Enero,Febrero,Marzo,Abril,Mayo,Junio,Julio,Agosto,Septiembre,Octubre,Noviembre,Diciembre";
   var f="Elejir Año,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013";

   var mydate=new Date();
   var year=mydate.getYear();
   var dia=mydate.getDay();
   var mes=mydate.getMonth();
   if (dia<10){dia="0"+dia;}
   if (mes<10){mes="0"+mes;}
   if (year < 1000){year+=1900;}
    
   function adOpt(oCtrl, iPs, sTt, sVl){
     var sOpcion=new Option(sTt, sVl);
     eval(oCtrl.options[iPs]=sOpcion);}

   function inicializar(){
   alert("Dia "+dia+" mes "+mes+" year "+year);
   //Este pedazo es para los ciclos
   ele=f.split(",");
   oCtrl=document.getElementById('cicloa');
   while (oCtrl.length) oCtrl.remove(0);
   for (i=0;i<ele.length;i++){adOpt(oCtrl,  i, ele[i], ele[i]);}

    //este otro para los demas controles de fecha
    for(j=0;j<3;j++){
        switch(j){
            case 0: ele=f.split(",");
                    oCtrl=document.getElementById('years');
                    while (oCtrl.length) oCtrl.remove(0);
                    for (i=0;i<ele.length;i++){
                        adOpt(oCtrl,  i, ele[i], ele[i]);
                        if(ele[i]==year){oCtrl.options[i].selected = true;}}
                    break;
            case 1: ele=e.split(",");
                    oCtrl=document.getElementById('months');
                    while (oCtrl.length) oCtrl.remove(0);
                    for (i=0;i<ele.length;i++){
                        adOpt(oCtrl,  i, ele[i], i);
                        if(ele[i]==mes){oCtrl.options[i].selected = true;}}
                    break;
            case 2: ele=d.split(",");
                    oCtrl=document.getElementById('days');
                    while (oCtrl.length) oCtrl.remove(0);
                    for (i=0;i<ele.length;i++){
                        adOpt(oCtrl,  i, ele[i], ele[i]);
                        if(ele[i]==dia){oCtrl.options[i].selected = true;}}
                    break;
            }
        }
   }

   function Cambia(oCtrl){
    while (oCtrl.length) oCtrl.remove(0);
    mes=document.getElementById('months').selectedIndex;
    switch (mes){
        case 1: qmes=2; break;
        case 2: qmes=0; break;
        case 3: qmes=2; break;
        case 4: qmes=1; break;
        case 5: qmes=2; break;
        case 6: qmes=1; break;
        case 7: qmes=2; break;
        case 8: qmes=2; break;
        case 9: qmes=1; break;
        case 10: qmes=2; break;
        case 11: qmes=1; break;
        case 12: qmes=2; break;
        }
    switch (qmes){
     case 0: 
        ele=a.split(",");
        for (i=0;i<ele.length;i++){
            adOpt(oCtrl,  i, ele[i], i);
            }
      break;
     case 1: 
        ele=c.split(",");
        for (i=0;i<ele.length;i++){
            adOpt(oCtrl,  i, ele[i], i);
            
            }
      break;
     case 2: 
        ele=d.split(",");
        for (i=0;i<ele.length;i++){
            adOpt(oCtrl,  i, ele[i], i);
            }
      break;
    }
   }
</script> 
y la forma en que mando llamar en los selects
Cita:
<select id="years" name="years"></select>
<select id="months" name="months" onchange="Cambia(document.getElementById('days'))" ></select>
<select id="days" name="days"></select>
muchas gracias derkenuke , ya funciona perfecto, ahora que si se puede depurar mas el codigo seria excelente

suerte
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra