Buenas tardes,
Necesito repetir la function del combo anidado del siguiente codigo en las filas que se van agregando, se que es con un array pero no he logrado hacerlo... alguien que me pueda colaborar, gracias.
<html>
<head>
<script language="javascript" type="text/javascript">
var posicionCampo=2;
function agregarUsuario(){
nuevaFila = document.getElementById("tablaregistro").insertRow (-1);
nuevaFila.id=posicionCampo;
nuevaCelda=nuevaFila.insertCell(-1);
nuevaCelda.innerHTML="<td> <select name='division["+posicionCampo+"]' id='divi"+posicionCampo+"' onchange='CargaCombo();'> <option value=''> </option> <option value='Division 1'>Division 1</option> <option value='Division 2'>Division 2</option> <option value='Division 3'>Division 3</option> </select> </td>";
nuevaCelda=nuevaFila.insertCell(-1);
nuevaCelda.innerHTML="<td> <select name='oco["+posicionCampo+"]' id='oco"+posicionCampo+"'> <option value=''> </option> </select> </td>";
nuevaCelda=nuevaFila.insertCell(-1);
nuevaCelda.innerHTML="<td><input type='button' value='Eliminar' onclick='eliminarUsuario(this); totalesgeneral("+posicionCampo+");'> </td>";
posicionCampo++; }
function eliminarUsuario(obj){ var oTr = obj;
while(oTr.nodeName.toLowerCase()!='tr'){ oTr=oTr.parentNode; }
var root = oTr.parentNode; root.removeChild(oTr); posicionCampo--;}
</script>
</head>
<body >
<table id="tablaregistro">
<TR>
<select name="division[1]" id="divi" onchange="CargaCombo();" >
<option value=""> </option>
<option value="Division 1">Division 1</option>
<option value="Division 2">Division 2</option>
<option value="Division 3">Division 3</option>
</select>
</TR>
<TR>
<select name="oco[1]" id="oco">
<option value=""> </option>
</select>
<TR>
<script type="text/javascript">
var arrOpciones = [
{
"padre" : "Division 1",
"value" : "OCO 148",
"text" : "OCO 148"
},
{
"padre" : "Division 1",
"value" : "OCO 150",
"text" : "OCO 150"
},
{
"padre" : "Division 2",
"value" : "OCO 151",
"text" : "OCO 151"
},
{
"padre" : "Division 2",
"value" : "OCO 167",
"text" : "OCO 167"
},
{
"padre" : "Division 3",
"value" : "OCO 145",
"text" : "OCO 145"
},
{
"padre" : "Division 3",
"value" : "OCO 159",
"text" : "OCO 159"
}
];
var listHijo = document.getElementById("oco");
function LimpiaSelect()
{
while(listHijo.firstChild)
{
listHijo.removeChild(listHijo.firstChild);
}
}
function CreaOption(session)
{
var opcion = document.createElement("option");
opcion.textContent = session.text;
opcion.value = session.value;
return opcion;
}
function CargaCombo()
{
LimpiaSelect();
var seleccion = document.getElementById("divi");
if(!seleccion[0].selected)
{
for(var i = 0; i < arrOpciones.length; i++)
{
var padre = arrOpciones[i].padre;
var validaSeleccion = padre == seleccion[seleccion.selectedIndex].value;
if(validaSeleccion)
{
var opcion = CreaOption(arrOpciones[i]);
listHijo.appendChild(opcion);
}
}
}
}
CargaCombo();
document.getElementById("divi").addEventListener(" change", CargaCombo, false);
</script>
</table>
<td align="left"><INPUT onclick="agregarUsuario()" value="Agregar Registro" type="button"></td>
</body>
</html>