Estoy armando un formulario de con un codigo que encontre y funciona bien, uno selecciona en un menu un pais y en el menu siguiente aparecen las provincias que existen en dicho pais.
La cuestion es que cuando lo uso con mas de 4 opciones (como viene en el ejemplo) ya no me funciona el 2do menu.. Seguramente es muy sencillo de arreglar pero el javascript no es mi fuerte y se me debe estar escapando algo...
Desde ya les agradezo por la ayuda!!
este es mi codigo:
Código:
<form name="f1"> <select name=pais onchange="cambia_provincia()"> <option value="0"> <option value="2">Capital Federal <option value="1">Buenos Aires <option value="3">Catamarca <option value="4">Chaco <option value="5">Chubut <option value="6">Córdoba <option value="7">Corrientes <option value="8">Entre Ríos <option value="9">Formosa <option value="10">Jujuy <option value="11">La Pampa <option value="12">La Rioja <option value="13">Mendoza <option value="14">Misiones <option value="15">Neuquén <option value="16">Río Negro <option value="17">Salta <option value="18">San Juan <option value="19">San Luis <option value="20">Santa Cruz <option value="21">Santa Fe <option value="22">Santiago Del Estero <option value="23">Tierra Del Fuego <option value="24">Tucuman </select> <select name=provincia> <option value="-">- </select> </form> <script type="text/javascript" language="javascript"> var provincias_1=new Array("-","Adolfo Alsina","Zárate") var provincias_2=new Array("-","Capital Federal") var provincias_3=new Array("-","Ambato","Ancasti","Andalgalá","Antofagasta de la Sierra","Belén","Capayán","Valle Viejo") var provincias_4=new Array("-","Almirante Brown","Bermejo","Comandante Fernández","25 de Mayo") var provincias_5=new Array("-","Biedma","Cushamen","Escalante","Florentino Ameghino","Futaleufú","Gaiman","Gastre","Languiñeo","Mártires","Paso de Indios","Rawson","Río Senguer","Sarmiento ","Tehuelches","Telsen") var provincias_6=new Array("-","Calamuchita","Colón","Córdoba","Cruz del Eje","Unión") var provincias_7=new Array("-","Bella Vista","Berón de Astrada","Concepción","Corrientes","Curuzú Cuatiá","Empedrado","Esquina","General Alvear","General Paz","Goya","Itatí","Ituzaingó","Lavalle","Mburucuyá","Mercedes","Monte Caseros","Paso de los Libres","Saladas","San Cosme","San Luis del Palmar","San Martín","San Miguel","San Roque","Santo Tomé","Sauce") var provincias_8=new Array("-","Colón","Concordia","Diamante","Federación","Federal","Feliciano","Gualeguay","Gualeguaychú","Islas del Ibicuy","La Paz","Nogoyá","Paraná","San Salvador","Tala","Uruguay","Victoria","Villaguay") var provincias_9=new Array("-","Bermejo","Formosa","Laishi","Matacos","Patiño","Pilagás","Pilcomayo","Pirané","Ramón Lista") var provincias_10=new Array("-","Cochinoca","El Carmen","Dr. Manuel Belgrano","Humahuaca","Ledesma","Palpalá ","Rinconada","San Antonio","San Pedro","San Salvador de Jujuy","Santa Bárbara","Santa Catalina","Susques","Tilcara","Tumbaya","Valle Grande","Yavi") var provincias_11=new Array("-","Atreucó","Caleu Caleu","Catriló","Conhelo","Curacó","Chalileo","Chapaleufú","Chical Co","Guatraché","Hucal","Lihuel Calel","Limay Mahuida","Loventué","Maracó","Puelén","Quemú Quemú","Rancul","Realicó","Santa Rosa","Toay","Trenel","Utracán") var provincias_12=new Array("-","Arauco","Rosario Vera Peñaloza","San Blas de los Sauces","Sanagasta") var provincias_13=new Array("-","General Alvear","Godoy Cruz","Guaymallén","Junín","La Paz ","Las Heras","Lavalle","Luján de Cuyo","Maipú","Malargüe","Mendoza","Rivadavia","San Carlos ","San Martín","San Rafael ","Santa Rosa ","Tunuyán ","Tupungato") var provincias_14=new Array("-","Apóstoles","Cainguás","Candelaria","Concepción","Eldorado","General Manuel Belgrano","Guaraní","Iguazú","Leandro N. Alem","Libertador Grl. San Martín","Montecarlo","Oberá","Posadas","San Ignacio","San Javier","San Pedro","25 de Mayo") var provincias_15=new Array("-","Aluminé","Añelo","Catán Lil","Collón Curá","Confluencia","Chos Malal","Huiliches","Lácar","Loncopué","Los Lagos","Minas","Neuquén","Ñorquín","Pehuenches","Picún Leufú","Picunches","Zapala") var provincias_16=new Array("-","Adolfo Alsina","Avellaneda","Bariloche","Conesa","El Cuy","General Roca","9 de Julio","Ñorquincó","Pichi Mahuida","Pilcaniyeu","San Antonio","Valcheta","Viedma","25 de Mayo") var provincias_17=new Array("-","Anta","Cachi","Cafayate","Cerrillos","Chicoana","General Güemes","Grl. José de San Martín","Guachipas","Iruya","La Caldera","La Candelaria","La Poma","La Viña","Los Andes","Metán","Molinos","Orán","Rivadavia","Rosario de la Frontera","Rosario de Lerma","Salta","San Carlos","Santa Victoria") var provincias_18=new Array("-","Aberastain","Zonda") var provincias_19=new Array("-","Ayacucho","Belgrano","Coronel Pringles","Chacabuco","General Pedernera","Gobernador Dupuy","Junín","La Capital","Libertador General San Martín") var provincias_20=new Array("-","Corpen Aike","Deseado","Güer Aike","Lago Argentino","Lago Buenos Aires","Magallanes","Río Chico","Río Gallegos") var provincias_21=new Array("-","Arequito","Belgrano","Caseros","Casilda","Castellanos","Firmat","Garay","General López","General Obligado","Iriondo","Las Colonias","9 de Julio","Rafaela","Rosario","San Cristóbal","San Javier","San Jerónimo","San Justo","San Lorenzo","San Martín","Santa Fe","Venado Tuerto","Vera","Villa Constitución","Villa Gobernador Galvez") var provincias_22=new Array("-","Aguirre","Alberdi","Atamisqui","Avellaneda","Banda","Belgrano","Copo","Choya","Figueroa","General Taboada","Guasayán","Jiménez","Juan F. Ibarra","Loreto","Mitre","Moreno","Ojo de Agua","Pellegrini","Quebrachos","Río Hondo","Rivadavia","Robles","Salavina","San Martín","Santiago del Estero","Sarmiento","Silípica") var provincias_23=new Array("-","Río Grande","Ushuaia") var provincias_24=new Array("-","Burruyacú","Cruz Alta","Chicligasta","Famaillá","Graneros","Juan Bautista Alberdi","La Cocha","Leales","Lules","Monteros","Río Chico","Simoca","Tafí del Valle","Tafí Viejo","Trancas","Tucumán","Yerba Buena") function cambia_provincia(){ //tomo el valor del select del pais elegido var pais pais = document.f1.pais[document.f1.pais.selectedIndex].value //miro a ver si el pais está definido if (pais != 0) { //si estaba definido, entonces coloco las opciones de la provincia correspondiente. //selecciono el array de provincia adecuado mis_provincias=eval("provincias_" + pais) //calculo el numero de provincias num_provincias = mis_provincias.length //marco el número de provincias en el select document.f1.provincia.length = num_provincias //para cada provincia del array, la introduzco en el select for(i=0;i<num_provincias;i++){ document.f1.provincia.options[i].value=mis_provincias[i] document.f1.provincia.options[i].text=mis_provincias[i] } }else{ //si no había provincia seleccionada, elimino las provincias del select document.f1.provincia.length = 1 //coloco un guión en la única opción que he dejado document.f1.provincia.options[0].value = "-" document.f1.provincia.options[0].text = "-" } //marco como seleccionada la opción primera de provincia document.f1.provincia.options[0].selected = true } </script>
y este es el codigo del ejemplo:
Código:
<form name="f1"> <select name=pais onchange="cambia_provincia()"> <option value="0">Provincia... <option value="1">Pais 1 <option value="2">Pais 2 <option value="3">Pais 3 <option value="4">Pais 4 </select> <select name=provincia> <option value="-">- </select> </form> <script type="text/javascript" language="javascript"> var provincias_1=new Array("-","Andalucía","Asturias","Baleares","Canarias","Castilla y León","Castilla-La Mancha","...") var provincias_2=new Array("-","Capital Federal") var provincias_3=new Array("-","Cali","Santamarta","Medellin","Cartagena","...") var provincias_4=new Array("-","Aisne","Creuse","Dordogne","Essonne","Gironde ","...") function cambia_provincia(){ //tomo el valor del select del pais elegido var pais pais = document.f1.pais[document.f1.pais.selectedIndex].value //miro a ver si el pais está definido if (pais != 0) { //si estaba definido, entonces coloco las opciones de la provincia correspondiente. //selecciono el array de provincia adecuado mis_provincias=eval("provincias_" + pais) //calculo el numero de provincias num_provincias = mis_provincias.length //marco el número de provincias en el select document.f1.provincia.length = num_provincias //para cada provincia del array, la introduzco en el select for(i=0;i<num_provincias;i++){ document.f1.provincia.options[i].value=mis_provincias[i] document.f1.provincia.options[i].text=mis_provincias[i] } }else{ //si no había provincia seleccionada, elimino las provincias del select document.f1.provincia.length = 1 //coloco un guión en la única opción que he dejado document.f1.provincia.options[0].value = "-" document.f1.provincia.options[0].text = "-" } //marco como seleccionada la opción primera de provincia document.f1.provincia.options[0].selected = true } </script>