Foros del Web » Programando para Internet » Javascript »

Cambiar el <select> deacuerdo a un radio

Estas en el tema de Cambiar el <select> deacuerdo a un radio en el foro de Javascript en Foros del Web. gente una duda! Como dice el tema... Yo tengo el sgte codigo que encontré en internet: <form name="formulario" method="post" action=""> <div align="center">Usa <input name="paises" type="radio" ...
  #1 (permalink)  
Antiguo 27/11/2007, 11:28
 
Fecha de Ingreso: noviembre-2007
Mensajes: 2
Antigüedad: 16 años, 5 meses
Puntos: 0
Cambiar el <select> deacuerdo a un radio

gente una duda!
Como dice el tema...

Yo tengo el sgte codigo que encontré en internet:

<form name="formulario" method="post" action="">
<div align="center">Usa
<input name="paises" type="radio" OnClick="cambiar()" value="1" checked>
Espa&ntilde;a
<input name="paises" type="radio" OnClick="cambiar()" value="2">
<br>
Ciudad
<select name="ciudades">
<option value="1" selected>Miami</option>
<option value="2">New York</option>
<option value="3">Boston</option>
</select>
</div>
</form>

<script language="JavaScript">
function cambiar()
{
if(document.forms.formulario.paises[0].checked) pais1(); // USA
if(document.forms.formulario.paises[1].checked) pais2(); // ESPAÑA
}

function pais1(){
opcion0=new Option("Miami","1","defauldSelected");
opcion1=new Option("New York","2");
opcion2=new Option("Boston","3");

document.forms.formulario.ciudades.options[0]=opcion0;
document.forms.formulario.ciudades.options[1]=opcion1;
document.forms.formulario.ciudades.options[2]=opcion2;
}

function pais2(){
opcion0=new Option("Madrid","1","defauldSelected");
opcion1=new Option("Malaga","2");
opcion2=new Option("Cadiz","3");

document.forms.formulario.ciudades.options[0]=opcion0;
document.forms.formulario.ciudades.options[1]=opcion1;
document.forms.formulario.ciudades.options[2]=opcion2;
}

</script>


y me va chevere funciona!
Pero ahora sucede que me di cuenta que funciona porque son 3 listados y en la 2da opcion tb son 3 listados; sin embargo cuando le agrego 2 opciones más a uno de las opciones, esto ya no funciona bien.
Por ejemplo:


function pais1(){
opcion0=new Option("Miami","1","defauldSelected");
opcion1=new Option("New York","2");
opcion2=new Option("Boston","3");
opcion3=new Option("pollo1","4");
opcion4=new Option("pollo2","5");

document.forms.formulario.ciudades.options[0]=opcion0;
document.forms.formulario.ciudades.options[1]=opcion1;
document.forms.formulario.ciudades.options[2]=opcion2;
document.forms.formulario.ciudades.options[3]=opcion3;
document.forms.formulario.ciudades.options[4]=opcion4;
}


Le he agregado "pollo1" y "pollo2" entonces cuando elija la 2da opcion, va a chancar los 3 primeros elementos de la lista y va a mostrar los 2 ultimos de la lista anterior, y eso es malo!

Me pregunto como haría para poder mostrar solo aquellos que debo mostrar y no las sobras de la antigua lista.

Espero haberme explicado bien.
Saludos
  #2 (permalink)  
Antiguo 27/11/2007, 12:07
 
Fecha de Ingreso: septiembre-2006
Ubicación: Santiago, Chile
Mensajes: 18
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: Cambiar el <select> deacuerdo a un radio

Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<
title>Documento sin t&iacute;tulo</title>
<
script language="JavaScript">
function 
cambiar()
{
if(
document.forms.formulario.paises[0].checkedpais1(); // USA
if(document.forms.formulario.paises[1].checkedpais2(); // ESPAÑA
}

function 
pais1(){
for(var 
<document.forms.formulario.ciudades.length i++)
    
document.forms.formulario.ciudades.options[i]=null;
    
opcion0=new Option("Miami","1","defauldSelected");
opcion1=new Option("New York","2");
opcion2=new Option("Boston","3");
opcion3=new Option("pollo1","4");
opcion4=new Option("pollo2","5");

document.forms.formulario.ciudades.options[0]=opcion0;
document.forms.formulario.ciudades.options[1]=opcion1;
document.forms.formulario.ciudades.options[2]=opcion2;
document.forms.formulario.ciudades.options[3]=opcion3;
document.forms.formulario.ciudades.options[4]=opcion4;
}

function 
pais2(){
for(var 
<document.forms.formulario.ciudades.length i++)
    
document.forms.formulario.ciudades.options[i]=null;

opcion0=new Option("Madrid","1","defauldSelected");
opcion1=new Option("Malaga","2");
opcion2=new Option("Cadiz","3");

document.forms.formulario.ciudades.options[0]=opcion0;
document.forms.formulario.ciudades.options[1]=opcion1;
document.forms.formulario.ciudades.options[2]=opcion2;
}
</script>
</head>
<body>
<form name="formulario" method="post" action="">
<div align="center">Usa
<input name="paises" type="radio" OnClick="cambiar()" value="1" checked>
Espa&ntilde;a
<input name="paises" type="radio" OnClick="cambiar()" value="2">
<br>
Ciudad
<select name="ciudades">
<option value="1" selected>Miami</option>
<option value="2">New York</option>
<option value="3">Boston</option>
<option value="4">pollo1</option>
<option value="5">pollo2</option>
</select>
</div>
</form>
</body>
</html> 
2 cosas:

1.-
Código PHP:
document.forms.formulario.ciudades.options[i]=null
deja el select vacío.

2.- En el select de cuidad, tienes que agregar las opciones del que está por defecto.

Código PHP:
<option value="4">pollo1</option>
<
option value="5">pollo2</option
Aunque creo que si se cargaras el select automático, te ahorras el paso 2.
  #3 (permalink)  
Antiguo 27/11/2007, 14:56
 
Fecha de Ingreso: noviembre-2007
Mensajes: 2
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: Cambiar el <select> deacuerdo a un radio

yupiii gracias! ya me ha salido :p
  #4 (permalink)  
Antiguo 27/11/2007, 14:59
 
Fecha de Ingreso: septiembre-2006
Ubicación: Santiago, Chile
Mensajes: 18
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: Cambiar el <select> deacuerdo a un radio

me alegra escuchar eso ^^
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 02:34.