Foros del Web » Programando para Internet » Javascript »

Duplicar codigo javascript en un formulario

Estas en el tema de Duplicar codigo javascript en un formulario en el foro de Javascript en Foros del Web. Hola amigos tengo el siguiente problema y mi conocimiento en programacion es mas bien flojito. resulta que me he encontrado con el siguiente javascript para ...
  #1 (permalink)  
Antiguo 26/01/2009, 06:16
 
Fecha de Ingreso: febrero-2008
Mensajes: 69
Antigüedad: 16 años, 9 meses
Puntos: 0
Pregunta Duplicar codigo javascript en un formulario

Hola amigos tengo el siguiente problema y mi conocimiento en programacion es mas bien flojito.


resulta que me he encontrado con el siguiente javascript para formulario y la verdad es justo lo que nesesito pero no se como duplicarlo o que me funcione con otros campos de listas al mismo tiempo



<script language="JavaScript">

function addOpt(oCntrl, iPos, sTxt, sVal){
var selOpcion=new Option(sTxt, sVal);
eval(oCntrl.options[iPos]=selOpcion);
}

function cambia(oCntrl){
while (oCntrl.length) oCntrl.remove(0);
switch (document.form.pais.selectedIndex){
case 0:
addOpt(oCntrl, 0, "Ciudad de México", "0");
addOpt(oCntrl, 1, "Monterrey", "1");
addOpt(oCntrl, 2, "Guadalajara", "2");
break;
case 1:
addOpt(oCntrl, 0, "Madrid", "0");
addOpt(oCntrl, 1, "Barcelona", "1");
addOpt(oCntrl, 2, "San Sebastián", "2");
break;
case 2:
addOpt(oCntrl, 0, "Caracas", "0");
addOpt(oCntrl, 1, "Coro", "1");
addOpt(oCntrl, 2, "Maracay", "2");
addOpt(oCntrl, 3, "Valencia", "3");
break;
}
}
</script>


<form name="form">
<table border="0">
<tr>
<td>
Pais
</td>
<td>
<select name="pais" onChange="cambia(document.frm.ciudad)">
<option value="Mex">Mexico</option>
<option value="Esp">España</option>
<option value="Ven">Venezuela</option>
</select>
</td>
<td>&nbsp;

</td>
<td>
Ciudad
</td>
<td>
<select name="ciudad">
<option value="0">Ciudad de México</option>
<option value="1">Monterrey</option>
<option value="2">Guadalajara</option>
</select>
</td>
</tr>
</table>
</form>




el javascript tiene para escojer en la primera lista entre diferentes paises y dependiendo de que pais escojas la siguiente lista muestra ciudades del pais escojido en la primera lista.

Bien pues lo que quiero ahora es añadirle abajo 4 lineas mas con las mismas dos listas pero que funcionen independientes, claro para ya me imagino que habra que cambiar los "name" en los select --select name="nombredelselect"---- de las siguientes lineas de listas y para eso he desidido llamarlos: pais_01 y ciudad_01, pais_02 y ciudad_02 y asi todos los select tendrian diferentes nombres

La verdad es que con el poco conocimiento que tengo al respecto no me sale y he provado con un monton de maneras diferentes. tengo ya un dolor de cabeza de provar y provar codigos que madre mia y los ojos se me van a salir de su sitio...

Alguien puede echarme una manita con esto? por favor.
  #2 (permalink)  
Antiguo 26/01/2009, 06:53
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: Duplicar codigo javascript en un formulario

He hecho algunos cambios que seguro que entenderas.... sino pregunta!

Código HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<script language="JavaScript">

function addOpt(oCntrl, iPos, sTxt, sVal){
var selOpcion=new Option(sTxt, sVal);
eval(oCntrl.options[iPos]=selOpcion);
}

function cambia(obj,Cntrl){
var oCntrl=document.getElementById(Cntrl);
while (oCntrl.length!=0){
	oCntrl.remove(0);
}
switch (obj.selectedIndex){
case 0:
addOpt(oCntrl, 0, "Antes elige pais", "0");
break;
case 1:
addOpt(oCntrl, 0, "Ciudades de Mx", "0");
addOpt(oCntrl, 1, "Ciudad de México", "1");
addOpt(oCntrl, 2, "Monterrey", "2");
addOpt(oCntrl, 3, "Guadalajara", "3");
break;
case 2:
addOpt(oCntrl, 0, "Ciudades de Es", "0");
addOpt(oCntrl, 1, "Madrid", "1");
addOpt(oCntrl, 2, "Barcelona", "2");
addOpt(oCntrl, 3, "San Sebastián", "3");
break;
case 3:
addOpt(oCntrl, 0, "Ciudades de Vn", "0");
addOpt(oCntrl, 1, "Caracas", "1");
addOpt(oCntrl, 2, "Coro", "2");
addOpt(oCntrl, 3, "Maracay", "3");
addOpt(oCntrl, 4, "Valencia", "4");
break;
}
}
</script>
<body>



<form name="form">
<table border="0">
<tr>
<td>
Pais
</td>
<td>
<select name="pais" id="pais" onChange="cambia(this,'ciudad')">
<option value="0">Elige pais</option>
<option value="Mex">Mexico</option>
<option value="Esp">España</option>
<option value="Ven">Venezuela</option>
</select>
</td>
<td>&nbsp;

</td>
<td>
Ciudad
</td>
<td>
<select name="ciudad"  id="ciudad">
<option value="0">Antes elige pais</option>
</select>
</td>
</tr>
</table>
<table border="0">
<tr>
<td>
Pais
</td>
<td>
<select name="pais2" id="pais2" onChange="cambia(this,'ciudad2')">
<option value="0">Elige pais</option>
<option value="Mex">Mexico</option>
<option value="Esp">España</option>
<option value="Ven">Venezuela</option>
</select>
</td>
<td>&nbsp;

</td>
<td>
Ciudad
</td>
<td>
<select name="ciudad2"  id="ciudad2">
<option value="0">Antes elige pais</option>
</select>
</td>
</tr>
</table>
</form>
</body>
</html> 
Nunca dupliques codigo haz que con los parametros que le pases sepa donde actuar...


Quim

Última edición por quimfv; 26/01/2009 a las 07:03
  #3 (permalink)  
Antiguo 26/01/2009, 08:36
 
Fecha de Ingreso: febrero-2008
Mensajes: 69
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Duplicar codigo javascript en un formulario

GRACIASSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS Quimfv.....

Mil gracias, no se como puedo agradecertelo. Era justo lo que nesesitaba para poder continuar aun no he terminado pero de momento funciona de maravilla.

Ya me imaginaba que seria cambiando algo en los parametros del javascript pero yo no se nada de progamacion lo justo para copiar pegar y cambiar cosas cuando son muy obvias.

Gracias de nuevo, me has quitado un gran peso de encima y si puedo hacer algo por ti me lo dices.
  #4 (permalink)  
Antiguo 26/01/2009, 08:37
 
Fecha de Ingreso: febrero-2008
Mensajes: 69
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Duplicar codigo javascript en un formulario

Ademas seguro estoy de que este codigo le servira a un monton de gente mas...
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 18:24.