Foros del Web » Programando para Internet » Javascript »

Relacionar dos combos

Estas en el tema de Relacionar dos combos en el foro de Javascript en Foros del Web. Hola estoy haciendo un trabajo practico y tengo que relacionar dos combos entré si, es decir segun que elija en uno, que se active y ...
  #1 (permalink)  
Antiguo 13/11/2008, 09:52
Avatar de andama  
Fecha de Ingreso: noviembre-2008
Mensajes: 54
Antigüedad: 15 años, 5 meses
Puntos: 0
Relacionar dos combos

Hola estoy haciendo un trabajo practico y tengo que relacionar dos combos entré si, es decir segun que elija en uno, que se active y cambien las opciones del segundo. No tengo permitido cambiar directamente el html.

este es el script que tengo, pero no sé en que estoy fallando, porque no funciona. gracias

//
var carreras = ['Disenio web','Disenio multimedial','Disenio grafico'];
var disenio_web = ['Programacion I','Dise�o Interactivo','Tecnologia de las comunicaciones II','Tecnicas de Marketing'];
var disenio_multimedial = ['Tratamiento de la Imagen Gr�fica','Metodolog�a de Res. de Problemas','Representaci�n Gr�fica'];
var disenio_grafico = ['Tipograf�a','Dise�o en Comunicaci�n Visual','Morfolog�a'];


window.onload = datosPersonales;


function datosPersonales(){

var carrera = document.getElementById("carrera"); /* Para no tener que llamar a cada rato a getElementById */
for (var i = 0; i < carreras.length; i++) {
carrera.options[i] = new Option(carreras[i]);
carrera.options[i].value = carreras[i];
}
}

carreras.onchange = function(){
alert("jje");
materias.disable = "";
materias.options.length = 0;

switch (this.selectedIndex) {
case 0:
var materia = document.getElementById("materias");
for (var i = 0; i < disenio_web.length; i++) {
materia.options[i] = new Option(disenio_web[i]);
materia.options[i].value = "1";
}
case 1:
alert("jje")
var materia = document.getElementById("materias");
for (var i = 0; i < disenio_multimedial.length; i++) {
materia.options[i] = new Option(disenio_multimedial[i]);
materia.options[i].value = "1";
}
case 2:
alert("jje")
var materia = document.getElementById("materias");
for (var i = 0; i < disenio_grafico.length; i++) {
materia.options[i] = new Option(disenio_grafico[i]);
materia.options[i].value = "1";
}
}
}




y esta es esa parte del html:


<select id="carrera"><option>Aca van las carreras</option></select><br />
<select id="materias" disabled="disabled"><option>Seleccione una carrera para ver las materias</option></select><br />
  #2 (permalink)  
Antiguo 13/11/2008, 10:14
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Relacionar dos combos

Esta parte del código:
Código javascript:
Ver original
  1. materias.disable = ""; materias.options.length = 0;
"materias" no está definido, así que provocará error y saldrá de la función, debes obtener la referencia al select usando getElementById.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 13/11/2008, 10:17
Avatar de andama  
Fecha de Ingreso: noviembre-2008
Mensajes: 54
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Relacionar dos combos

Cita:
Iniciado por David el Grande Ver Mensaje
Esta parte del código:
Código javascript:
Ver original
  1. materias.disable = ""; materias.options.length = 0;
"materias" no está definido, así que provocará error y saldrá de la función, debes obtener la referencia al select usando getElementById.

lo cambié así, el alert lo pongo para ver si entra y ni siquiera eso sale...



carreras.onchange = function(){
var materia = document.getElementById("materias");
alert("jje");
materia.disable = "";
materia.options.length = 0;

switch (this.selectedIndex) {
case 0:
var materia = document.getElementById("materias");
for (var i = 0; i < disenio_web.length; i++) {
materia.options[i] = new Option(disenio_web[i]);
materia.options[i].value = disenio_web[i];
}
case 1:
alert("jje")
var materia = document.getElementById("materias");
for (var i = 0; i < disenio_multimedial.length; i++) {
materia.options[i] = new Option(disenio_multimedial[i]);
materia.options[i].value = disenio_multimedial[i];
}
case 2:
alert("jje")
var materia = document.getElementById("materias");
for (var i = 0; i < disenio_grafico.length; i++) {
materia.options[i] = new Option(disenio_grafico[i]);
materia.options[i].value = disenio_grafico[i];
}
}
}
  #4 (permalink)  
Antiguo 13/11/2008, 10:19
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Relacionar dos combos

carreras es tu array, no tiene evento onchange, tu select está en la variable "carrera". Recuerda que puedes usar la Consola de Errores de tu navegador para detectar los errores en tu script.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 13/11/2008, 10:31
Avatar de andama  
Fecha de Ingreso: noviembre-2008
Mensajes: 54
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Relacionar dos combos

Muchas gracias! eso pasa por poner nombre similares
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:39.