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
<script> function esBisiesto(year) { return (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) ? true : false; } function limpiaSelect(elSelect) { while( elSelect.hasChildNodes() ) elSelect.removeChild( elSelect.firstChild ); } function aniadeOpcion(elSelect, texto, valor) { var laOpcion=document.createElement("OPTION"); laOpcion.appendChild( document.createTextNode(texto) ); laOpcion.setAttribute("value",valor); elSelect.appendChild(laOpcion); } function rellenar_ano(elSelect) { for(var a=2014;a>=2010;a--) aniadeOpcion(elSelect, a.toString(), a.toString() ); } var meses=["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"]; var meses_n=["01","02","03","04","05","06","07","08","09","10","11","12"]; function rellenar_mes(elSelect) { for(var a=0;a<meses.length;a++) aniadeOpcion(elSelect, meses[a], meses_n[a] ); } function rellenar_dia(elSelect, ano, mes ) { var ultimo_dia; // febrero if(mes==2) ultimo_dia=esBisiesto(ano)?29:28; // acaban en 31 else if( mes==1 || mes==3 || mes==5 || mes==7 || mes==8 || mes==10 || mes==12) ultimo_dia=31; else ultimo_dia=30; for(var a=1; a<=ultimo_dia; a++) { aniadeOpcion(elSelect, a, a); }} </script>
Código HTML:
Ver original
Código Javascript:
Ver original
<script> var ano=document.getElementById("ano"); var mes=document.getElementById("mes"); var dia=document.getElementById("dia"); rellenar_ano(ano); rellenar_mes(mes); rellenar_dia(dia,2016,0); function actualizar() { limpiaSelect(dia); rellenar_dia(dia, ano.options[ano.options.selectedIndex].value, mes.options[mes.options.selectedIndex].value ); } </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
<form> <script> var ano=document.getElementById("ano"); var mes=document.getElementById("mes"); var dia=document.getElementById("dia"); rellenar_ano(ano); rellenar_mes(mes); rellenar_dia(dia,2016,0); function actualizar() { limpiaSelect(dia); rellenar_dia(dia, ano.options[ano.options.selectedIndex].value, mes.options[mes.options.selectedIndex].value ); } </script> </form> <form> <script> var ano=document.getElementById("ano"); var mes=document.getElementById("mes"); var dia=document.getElementById("dia"); rellenar_ano(ano); rellenar_mes(mes); rellenar_dia(dia,2016,0); function actualizar() { limpiaSelect(dia); rellenar_dia(dia, ano.options[ano.options.selectedIndex].value, mes.options[mes.options.selectedIndex].value ); } </script> </form> <form> <script> var ano=document.getElementById("ano"); var mes=document.getElementById("mes"); var dia=document.getElementById("dia"); rellenar_ano(ano); rellenar_mes(mes); rellenar_dia(dia,2016,0); function actualizar() { limpiaSelect(dia); rellenar_dia(dia, ano.options[ano.options.selectedIndex].value, mes.options[mes.options.selectedIndex].value ); } </script> </form>
Es eso posible? desde ya muchas gracias.