El identificador del select de provincia se forma por "pr"+el identificadors del select de pais correspondiente...
así pais1 prpais1
luego pasas el select pais como objeto a la funcion, llenaprovincia(
this)
así tienes el valor, el texto y el identificador con un solo parametro, a este ultimo le agregas "pr"+obj.id y accedes al select de prov correspondiente...
Código HTML:
Ver original<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <script language="JavaScript" type="text/JavaScript"> //Array bidimensional de provincias
var provincias=new Array();
var pareja=new Array(2);
pareja[0]="PaisA";
pareja[1]="Provincia_1_PaisA";
provincias[0]=pareja;
pareja=new Array(2);
pareja[0]="PaisA";
pareja[1]="Provincia_2_PaisA";
provincias[1]=pareja;
pareja=new Array(2);
pareja[0]="PaisB";
pareja[1]="Provincia_1_PaisB";
provincias[2]=pareja;
pareja=new Array(2);
pareja[0]="PaisB";
pareja[1]="Provincia_2_PaisB";
provincias[3]=pareja;
pareja=new Array(2);
pareja[0]="PaisB";
pareja[1]="Provincia_3_PaisB";
provincias[4]=pareja;
function llenaProvincia(obj){
var pais;
pais = obj.value;
delOptions(document.getElementById("pr"+obj.id));
if (pais != "0") {
addOpt(document.getElementById("pr"+obj.id), 0, "Elige provincia", "0");
var j=1;
for(i=0;i<provincias.length;i++){
if(provincias[i][0]==obj.value){
addOpt(document.getElementById("pr"+obj.id), j, provincias[i][1], provincias[i][1]);
j++;
}
}
}else{
addOpt(document.getElementById("pr"+obj.id), 0, "Elige pais", "0");
}
//marco como seleccionada la opción primera de provincia
document.getElementById("pr"+obj.id).options[0].selected = true;
}
function addOpt(oCntrl, iPos, sTxt, sVal){
var selOpcion=new Option(sTxt, sVal);
eval(oCntrl.options[iPos]=selOpcion);
}
function delOptions(oCntrl){
while(oCntrl.length > 0) oCntrl.options[0]=null;
}
<table width="100%" border="1" cellspacing="0" cellpadding="0"> <td><select name="pais0" id="pais0" onChange="llenaProvincia(this);"> <td><select name="prpais0" id="prpais0"> <td><select name="pais1" id="pais1" onChange="llenaProvincia(this);"> <td><select name="prpais1" id="prpais1"> <td><select name="pais2" id="pais2" onChange="llenaProvincia(this);"> <td><select name="prpais2" id="prpais2">
Esto funciona.
Quim