Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] hacer aparecer un div al seleccionar radiobutton

Estas en el tema de hacer aparecer un div al seleccionar radiobutton en el foro de Javascript en Foros del Web. Hola a todos: Quizás ya respondieron esta pregunta infinidad de veces, pero estuve buscando en el buscador de aquí y no he encontrado nada, si ...
  #1 (permalink)  
Antiguo 27/02/2014, 12:32
Avatar de catanzaro99  
Fecha de Ingreso: diciembre-2011
Ubicación: Moreno Buenos Aires
Mensajes: 21
Antigüedad: 12 años, 4 meses
Puntos: 2
hacer aparecer un div al seleccionar radiobutton

Hola a todos:

Quizás ya respondieron esta pregunta infinidad de veces, pero estuve buscando en el buscador de aquí y no he encontrado nada, si ya hay un tema similar me pasan el link así no pierden tiempo con este tema... Gracias

Paso a detallar: Tengo un formulario que se muestra en un div inicial donde se pide que el usuario seleccione una de dos opciones mediante sendos radio.
Específicamente se pide si el usuario quiere ser contactado via fono y el usuario opta por SI o NO
Si opta por SI, hace visible un div oculto mediante style="display:none" para que complete unos text box donde completar sus teléfonos.
si opta por NO, hace visible otro div (también oculto) donde despliega otros textbox donde se le piden otros datos
Hacer aparecer los div no fue un gran problema usando:
Código HTML:
<label><input type="radio" name="contacto" onClick="document.getElementById('div1').style.display= this.checked?'':'none'">SI</label>

<label><input type="radio" name="contacto" onClick="document.getElementById('div2').style.display= this.checked?'':'none'">NO</label> 
El problema es que una vez visibles los divs no se vuelven a ocultar.
Es decir, supongamos que el usuario inicialmente seleccione SI (se despliega el div1) y luego decido seleccionar NO (que hace visible el div2) el div1 queda visible y mi intención es que si cambia de opción los div se oculten o se hagan visibles respectivamente.

Inicialmente encontre lo que me parecia una solución agregandole onBlur="document.getElementById('formdatesite').st yle.display='none'"

quedaba algo así
<label><input type="radio" name="contacto" onClick=" document.getElementById('div1').style.display= this.checked?'':'none'" onBlur="document.getElementById('formdatesite').st yle.display='none'">NO</label>
Pero al perder el foco para escribir en el div hecho visible el div se cerraba también...

Espero haber sido claro y si este no es el lugar adecuado a la pregunta pueden mover el post al lugar que le corresponda. Desde ya gracias...
  #2 (permalink)  
Antiguo 27/02/2014, 13:10
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 2 meses
Puntos: 53
Respuesta: hacer aparecer un div al seleccionar radiobutton

con una funcion
Código HTML:
Ver original
  1. <script type="text/javascript">
  2. function MostrarOcultar(valor)
  3. {
  4.     var Div1=document.getElementById('div1');
  5.     var Div2=document.getElementById('div2');
  6.     var DivI=document.getElementById('inicial');
  7.     Div1.style.display='none';
  8.     Div2.style.display='none';
  9.     DivI.style.display='none';
  10. if(valor ==1)
  11. {
  12.   Div1.style.display='';
  13. }
  14. else if(valor==2)
  15. {
  16.   Div2.style.display='';
  17. }
  18. else
  19. {
  20.     DivI.style.display='';
  21. }
  22. }
  23.  
  24. <label><input type="radio" value="1" name="contacto" onClick="MostrarOcultar(this.value)">SI</label>
  25. <label><input type="radio" value="2" name="contacto" onClick="MostrarOcultar(this.value)">NO</label>
  26.  
  27. <div id="inicial">Elija</div>
  28. <div id="div1" style="display:none">div si</div>
  29. <div id="div2" style="display:none">div no</div>
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #3 (permalink)  
Antiguo 27/02/2014, 20:13
Avatar de catanzaro99  
Fecha de Ingreso: diciembre-2011
Ubicación: Moreno Buenos Aires
Mensajes: 21
Antigüedad: 12 años, 4 meses
Puntos: 2
Respuesta: hacer aparecer un div al seleccionar radiobutton

Hola Pirruman

Eternamente agradecido, tu solución trabaja de maravillas con una pequeñísima salvedad, en tu código al seleccionar cualquiera de las opciones hace desaparecer al div inicial, algo muy bueno si no quiero que el usuario cambie su decisión.
Pero en mi caso prefiero dejar siempre visible la opción de elegir el SI o NO.
Por lo tanto modifique la linea 9 de tu código:
DivI.style.display='none';
por:
DivI.style.display='';

Esto permite al usuario cambiar su desición cuantas veces quiera...

Por lo demás el código funciona de mil maravillas, vuelvo a repetirte, eternamente agradecido...
vales 1000 puntos
Problema solucionado pueden cerrar el post... (¿O lo tengo que cerrar yo?)

Etiquetas: formulario
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 02:45.