Foros del Web » Programando para Internet » Javascript »

Habilitar textbox segun valor de un select que depende de otro select.

Estas en el tema de Habilitar textbox segun valor de un select que depende de otro select. en el foro de Javascript en Foros del Web. Pues eso, tengo un par de selects que dependen entre si, es decir, si cambiar el primero, cambian las opciones del segundo, lo típico. Pues ...
  #1 (permalink)  
Antiguo 17/04/2007, 03:57
Avatar de angel_dope  
Fecha de Ingreso: noviembre-2002
Ubicación: Valencia
Mensajes: 737
Antigüedad: 21 años, 5 meses
Puntos: 8
Habilitar textbox segun valor de un select que depende de otro select.

Pues eso, tengo un par de selects que dependen entre si, es decir, si cambiar el primero, cambian las opciones del segundo, lo típico. Pues además de eso, quiero lo siguiente. En el 2º select, siempre está al final la opción "otros" pues quiero que cuando se seleccione esa opción, se habilite un textbox para que escriban ahi (si se puede tener oculto y que aparezca en ese momento, ya sería la repera). Ahh, y también existe la opción "otros" en el primer select y tendria que hacer lo mismo, claro.

Como tendria que hacerlo??? Os dejo el código del formulario y el javascript que he utilizado para los selects para que se vea más claro

Código PHP:
<body>
  <
script language="JavaScript"

   function 
addOpt(oCntrliPossTxtsVal){ 
     var 
selOpcion=new Option(sTxtsVal); 
     eval(
oCntrl.options[iPos]=selOpcion); 
   } 

   function 
cambia(oCntrl){ 
    while (
oCntrl.lengthoCntrl.remove(0); 
    switch (
document.form1.producto1.selectedIndex){ 
     case 
0:  
      
addOpt(oCntrl,  0"Al agua""0"); 
      
addOpt(oCntrl,  1"Hidroalcohólico""1"); 
      
addOpt(oCntrl,  2"Al disolvente""2"); 
      
addOpt(oCntrl,  3"Otros""3"); 
      
      break; 
     case 
1:  
      
addOpt(oCntrl,  0"Poliuretano""0"); 
      
addOpt(oCntrl,  1"Acrílico""1"); 
      
addOpt(oCntrl,  2"Pigmentado""2"); 
      
addOpt(oCntrl,  3"Al ácido o reactiva""3"); 
      
addOpt(oCntrl,  4"Nitrocelulósico""4"); 
      
addOpt(oCntrl,  5"Poliester""5"); 
      
addOpt(oCntrl,  6"Pintura electroestática""6"); 
      
addOpt(oCntrl,  7"Otros""7"); 
      break; 
     case 
2:  
      
addOpt(oCntrl,  0"Poliuretano""0"); 
      
addOpt(oCntrl,  1"Acrílico""1"); 
      
addOpt(oCntrl,  2"Pigmentado""2"); 
      
addOpt(oCntrl,  3"Al ácido o reactiva""3"); 
      
addOpt(oCntrl,  4"Nitrocelulósico""4"); 
      
addOpt(oCntrl,  5"Poliester""5"); 
      
addOpt(oCntrl,  6"Pintura electroestática""6"); 
      
addOpt(oCntrl,  7"Otros""7"); 
      break; 
     case 
3:  
      
addOpt(oCntrl,  0"Otros""0"); 
     break; 
    case 
4:  
      
addOpt(oCntrl,  0"Otros""0"); 
     break; 


    } 
   } 
  
</script> 

<form id="form1" name="form1" method="post" action="insertar_disolventes.asp">
  <p>Por favor rellene el siguiente formulario para realizar los c&aacute;lculos necesarios para saber si est&aacute; afectado por el R.D.</p>
  <table width="100%" border="1">
    <tr>
      <td width="29%" rowspan="2">Producto</td>
      <td colspan="2">      <select name="producto1" onchange="cambia(document.form1.producto2)"> 
       <option value="0">Tinte</option> 
       <option value="1">Fondo</option> 
       <option value="2">Acabado</option> 
       <option value="3">Disolvente</option> 
       <option value="4">Otros</option>      
      </select> 
     </td>
    </tr>
    <tr>
      <td width="25%">      <select name="producto2"> 
       <option value="0">Al agua</option> 
       <option value="1">Hidroalcohólico</option> 
       <option value="2">Al disolvente</option> 
       <option value="3">Otros</option>        
      </select> 

        &nbsp;&nbsp;</td>
      <td width="46%"><input name="producto2b" type="text" id="producto2b" /> 
        <font size="1" face="Arial, Helvetica, sans-serif">*Especifique aqui si selecciona &quot;otros&quot; </font></td>
    </tr></table></body> 
Muchas gracias por adelantado. Salu2

P.D.: Acabo de caer en que si en el primero se selecciona "otros" el 2º cambia también a esa misma opción, asi que supongo que solo habria que controlar el segundo select, no??
__________________
Vayamos por Partes :: Jack el Destripador
  #2 (permalink)  
Antiguo 19/07/2007, 13:15
axz
 
Fecha de Ingreso: mayo-2005
Mensajes: 360
Antigüedad: 19 años
Puntos: 10
Re: Habilitar textbox segun valor de un select que depende de otro select.

Puedes hacer lo siguiente:

Mete el control text en un div oculto
Código HTML:
<div id="textOculto" style="display: none;">
  <input type="text" id="txtOtro" />
</div> 
En el evento onchange del segundo SELECT lanza una función que verifique si el valor es el que esperas
Código HTML:
<select id="sel" onchange="verifica();">
  <option value="1">uno</option>
  <option value="otros">Otros más</option>
</select> 
En la función dependiendo del valor mostrarás el control o lo ocultarás
Código PHP:
function verifica()
{
  var 
sel document.getElementById'sel' );
  var 
textOculto document.getElementById'textOculto' );
  
  if( 
sel.optionssel.selectedIndex ].value == 'otros' )
  {
    
textOculto.style.display 'block';
  }
  else
  {
    
textOculto.style.display 'none';
  }

Suerte

Última edición por axz; 19/07/2007 a las 13:15 Razón: Fallo en TAG
  #3 (permalink)  
Antiguo 20/07/2007, 00:00
Avatar de angel_dope  
Fecha de Ingreso: noviembre-2002
Ubicación: Valencia
Mensajes: 737
Antigüedad: 21 años, 5 meses
Puntos: 8
Re: Habilitar textbox segun valor de un select que depende de otro select.

Wow, ni me acordaba ya de esto jeje. Al final, como no supe como hacerlo, dejé el textbox siempre puesto, y hasta me ha venido bien, porque al final cambiaron algunas de las cosas que querían y ese campo siempre se rellenará. Pero muchas gracias de todas formas, me lo guardo por si me hace falta en otra ocasión. Salu2
__________________
Vayamos por Partes :: Jack el Destripador
  #4 (permalink)  
Antiguo 20/07/2007, 10:00
axz
 
Fecha de Ingreso: mayo-2005
Mensajes: 360
Antigüedad: 19 años
Puntos: 10
Re: Habilitar textbox segun valor de un select que depende de otro select.

Jejeje, si a veces se olvidan algunas cosas, qué bueno que te sirvió aunque sea para futuras referencias ...

un saludo
  #5 (permalink)  
Antiguo 05/07/2009, 13:38
 
Fecha de Ingreso: mayo-2009
Mensajes: 1
Antigüedad: 15 años
Puntos: 0
Respuesta: Habilitar textbox segun valor de un select que depende de otro select.

Gracias a mi tambien me sirve, parte de este código.
Muchas gracias, saludos desde Chile.
  #6 (permalink)  
Antiguo 05/07/2009, 13:52
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Respuesta: Habilitar textbox segun valor de un select que depende de otro select.

El mensaje original es de hace casi 2 años. Por favor, no reviváis temas tan antiguos.

Saludos,
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.
Tema Cerrado




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