Bueno esto es para tratar sobre uno de los temas relacionados con los Combos Dependientes o Listas Desplegables Dependientes.
El problema que tengo es con un codigo de 3 combos que fue posteado aqui por Lethe en fecha de 27-05-2003 voy a colocar el código y voy a marcar mi problema para ver si alguien ha utilizado este codigo me diga que tengo mal.
Código:
  
<script language = "JavaScript">
//-------------------------------------
//--Para Crear los Combos para Grupos y Sub-Grupos
//-------------------------------------
function Tupla(campo1,campo2)
{
	this.campo1 = campo1;
	this.campo2 = campo2;	
}
<%
'=======================================================
'---Vamos a crear nuestros arrays de "GRUPOS" desde ASP
'---El primer if detecta un cambio en el "INVENTARIO" para
'---crear un nuevo array en Javascript
'--------------------------------------
'			Query de Grupos
'--------------------------------------
Set Connect = CreateObject("ON_SRP_INV.grupos")
CondicionError
Set Recordset = Connect.GetRecords("1=1", "cod_inv, cod_grupo")
cuenta = 0
cat = "basura"
While Not Recordset.EOF
	If cat <> Recordset.Fields("cod_inv") then
		'--- Cambio de Inventario, empiezo a contar en 0 ---
		cuenta = 0
		cat = Recordset.Fields("cod_inv")
'========================================================
%>
	//Además tengo que crear un nuevo array para los Grupos
	var opciones<%=cat%> = new Array();
<%
'========================================================
	End If
'========================================================
%>
	opciones<%=cat%>[<%=cuenta%>]=new Tupla("<%=Recordset.Fields("nombre")%>","<%=Recordset.Fields("cod_grupo")%>");
<%
'========================================================
	cuenta = cuenta + 1
	Recordset.MoveNext
	
Wend
'========================================================
'--- Limpiamos Objetos ---
Recordset.Close
Set Recordset = Nothing
Set Connect = Nothing
'========================================================
'----------------------------------
'		Query de Sub Grupos
'----------------------------------
Set Connect = CreateObject("ON_SRP_INV.subgrupos")
CondicionError
Set Recordset = Connect.GetRecords("1=1", "cod_grupo, cod_subgrupo")
count = 0
cod = "basura"
			
While Not Recordset.EOF
	If cod <> Recordset.Fields("cod_grupo") then
		'--- Cambio de Grupos, empiezo a contar en 0 ---
		count = 0
		cod = Recordset.Fields("cod_grupo")
'========================================================
%>
		//Además tengo que crear un nuevo array para los SubGrupos
		var MatrizMetr<%=cod%> = new Array();
<%
'========================================================
	End If
'========================================================
%>
	MatrizMetr<%=cod%>[<%=count%>]=new Tupla("<%=Recordset.Fields("nombre")%>","<%=Recordset.Fields("cod_subgrupo")%>");
	
<%
'========================================================
	count = count + 1		
	Recordset.MoveNext
	
Wend
'========================================================
'--- Limpiamos Objetos ---
Recordset.Close
Set Recordset = Nothing
Set Connect = Nothing
'========================================================
%>
// Declaración de variable
var contador;
//--------------------------------------------------
// Función que compone dos (2) Listas Dependientes
//--------------------------------------------------
function ComponerLista(array) 
{
	// Limpia opciones del select
	BorrarLista();
	
	// Asigna bandera de cantidad de registro del sql proyecto (1=hay registros 0=no hay)
	cantReg = <%=noRecord%>
	
	// Verifica si hay registros del combo padre
	if (cantReg==0) {
	
		// Despliega el tag <Input> en campo Grupo y SubGrupo
		document.forms.buscar.txtgrupo.style.display = "";	
		document.forms.buscar.txtsubgrupo.style.display = "";		
		}
	else
		{
		// Despliega el tag <Select> en Campo Grupo y SubGrupo
		document.forms.buscar.codgrupo.style.display = "" ;		
		document.forms.buscar.codsubgrupo.style.display = "" ;	
		
		// Compone la lista dependiente a partir
		// del valor de la opcion escogida en la lista "padre"
		// Evalua el array "opciones" creado en tupla
		array = eval("opciones" + array);			
		for (contador = 0; contador < array.length; contador++) 
			{
			// Añade elementos al combobox correspondiente a Grupo
			var optionObj = new Option( array[contador].campo1, array[contador].campo1);
			buscar.codgrupo.options[contador] = optionObj;								
			} 
		
		// Asigna el Codigo de SubGrupo de la nueva opción seleccionada
		subgrupocod = document.forms.buscar.codsubgrupo.options[document.forms.buscar.codsubgrupo.selectedIndex].value;
		
		// Compone la lista dependiente a partir
		// del valor de la opcion escogida en la lista "padre"
		// Evalua el array "MatrizMetr" creado en tupla
		Metr = eval("MatrizMetr" + subgrupocod);		
		for (contador = 0; contador < Metr.length; contador++) 
		{
			// Añade elementos al combobox correspondiente a Sub Grupo
			var optionObj1 = new Option( Metr[contador].campo2, Metr[contador].campo2 );
			buscar.codsubgrupo.options[contador] = optionObj1;					
		} 				
		}					
} 
//-----------------------------------
// Función que limpia las opciones 
// de los combos dependientes
//-----------------------------------
function BorrarLista() 
{
	buscar.codgrupo.length = 0;
	buscar.codsubgrupo.length = 0;
}
//Inicializamos
ComponerLista (document.forms.buscar.codinventario.value);
-->
</script>
Lo que esta marcado en negritas es el problema que tengo, cuando cargo mi pagina me da un error de javascript que es el siguiente:
Object doesn't support this property or method
este error me sale desde un principio y el 3er combo no se me llena con lo seleccionado en el 2do combo.
Gracias de Antemano
 
