Foros del Web » Programando para Internet » Javascript »

problema con formulario

Estas en el tema de problema con formulario en el foro de Javascript en Foros del Web. Hola a to@s. Tengo un problemilla y a ver si me podeis ayudar que ando un poco espesito. Tengo un formulario y dentro de él ...
  #1 (permalink)  
Antiguo 01/03/2007, 06:55
 
Fecha de Ingreso: enero-2007
Mensajes: 284
Antigüedad: 17 años, 3 meses
Puntos: 1
problema con formulario

Hola a to@s.

Tengo un problemilla y a ver si me podeis ayudar que ando un poco espesito.
Tengo un formulario y dentro de él 2 combobox que dependiendo del primero, aparecen datos distintos en el segundo. Su codigo es:

<script>
<!--
var groups=document.form1.estudios.options.length
var group=new Array(groups)
for (i=0; i<groups; i++)
group[i]=new Array()

group[0][0]=new Option("Estudios ","0");

group[1][0]=new Option("Selecciona la categoria...","");
group[1][1]=new Option("Educación Obligatoria ","Educación Obligatoria ");
group[1][2]=new Option("CIP ","CIP ");
group[1][3]=new Option("Certificado Escolaridad ","Certificado Escolaridad ");
group[2][0]=new Option("Selecciona la categoria...","");
group[2][1]=new Option("Grado Medio ","Grado Medio ");
group[2][2]=new Option("Bachillerato ","Bachillerato ");
group[3][0]=new Option("Selecciona la categoria...","");
group[3][1]=new Option("Grado Superior ","Grado Superior ");
group[3][2]=new Option("Estudios Universitarios ","Estudios Universitarios ");

var temp=document.form1.subestudios

function redirect(x){
for (m=temp.options.length-1;m>0;m--)
temp.options[m]=null
for (i=0;i<group[x].length;i++){
temp.options[i]=new Option(group[x][i].text,group[x][i].value)
}
temp.options[0].selected=true

}
//-->
</script>

Ahora bien, quiero que si xejem dentro del segundo combo eligo una opción determinada, que me aparezca en el formulario un nuevo campo(un campo de texto), sinoque no aparezca nada.

Espero que me haya explicado bien.

Un saludo y a ver si podeis ayudarme.

Gracias.
  #2 (permalink)  
Antiguo 01/03/2007, 08:39
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Re: problema con formulario

El código que pusiste llena un combo con js, lo tuyo igual tiene que ser con js; en el evento enchange del select mandas como parámetro el índice (onchange= Funcion(this.selectedIndex)) si deseas trabajar con tu arreglo o simplemente en la función preguntas por el valor en particular (document.frm.NomSelect.options[document.frm.NomSelect.selectedIndex].text) y ocultas o muestras una capa con la caja de texto.
  #3 (permalink)  
Antiguo 01/03/2007, 09:25
 
Fecha de Ingreso: enero-2007
Mensajes: 284
Antigüedad: 17 años, 3 meses
Puntos: 1
Re: problema con formulario

He probado lo que me has dicho y me sale error de que espera un objeto.
en el select esta puesto onchange= "funcion(this.selectedIndex)"
me imagino que estará mal hecha la funcion. Aqui te la pongo:
function funcion(x)
{
if (document.form1.subestudios.options[document.form1.subestudios.selectedIndex].text)="CIP" then
<table width="100%" border="0" align="center">
<tr>
<td width="100" align="left" valign="middle"><span class="Estilo14">T&Iacute;TULO</span></td>
<td align="left" valign="middle">
<input name="textfield" type="text" size="35" maxlength="35"></td>
</tr>
</table>
}
  #4 (permalink)  
Antiguo 01/03/2007, 09:42
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Re: problema con formulario

La idea esta bien, pero no es así como se debe hacer.

Tu tabla la vas a colocar donde deberá aparecer pero oculta.

Código:
<div id="Capa" style="display:none">
<table width="100%" border="0" align="center">
<tr>
<td width="100" align="left" valign="middle"><span class="Estilo14">T&Iacute;TULO</span></td>
<td align="left" valign="middle">
<input name="textfield" type="text" size="35" maxlength="35"></td>
</tr>
</table> 
</div> 
Y en tu función vas a ocultar/mostrar la capa con javascript y CSS (como no usas el subíndice no es necesario que lo mandes de parámetro, por cierto)

Código:
function funcion(x){
if (document.form1.subestudios.options[document.form1.subestudios.selectedIndex].text=="CIP") 
  document.getElementById("Capa").style="block"
else
  document.getElementById("Capa").style="none"
}
La función JS se puede reducir más en código, pero te la pongo así para que sea más clara


Saludos

PD. Recuerda que el igual de comparación en JS son dos signos == juntos
  #5 (permalink)  
Antiguo 02/03/2007, 02:53
 
Fecha de Ingreso: enero-2007
Mensajes: 284
Antigüedad: 17 años, 3 meses
Puntos: 1
Re: problema con formulario

Funciona muy bien gracias.

Lo unico que en la funcion, la sentencia:
document.getElementById("Capa").style="block"
le faltaba el style.display="block"

pero por lo demas de maravilla.

Muchas gracias.
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 10:47.