Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Adaptación de código (Radio a Select)

Estas en el tema de Adaptación de código (Radio a Select) en el foro de Javascript en Foros del Web. Buenos días, tengo el siguiente problema, no consigo adaptar este código @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original < script type = "text/javascript" > <!-- ...
  #1 (permalink)  
Antiguo 02/06/2014, 09:04
 
Fecha de Ingreso: diciembre-2010
Mensajes: 180
Antigüedad: 13 años, 4 meses
Puntos: 5
Adaptación de código (Radio a Select)

Buenos días, tengo el siguiente problema, no consigo adaptar este código
Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. <!--
  3. function mostrarReferencia(){
  4. //Si la opcion con id Conocido_1 (dentro del documento > formulario con name fcontacto >     y a la vez dentro del array de Conocido) esta activada
  5. if (document.fcontacto.Conocido[1].checked == true) {
  6. //muestra (cambiando la propiedad display del estilo) el div con id 'desdeotro'
  7. document.getElementById('desdeotro').style.display='block';
  8. //por el contrario, si no esta seleccionada
  9. } else {
  10. //oculta el div con id 'desdeotro'
  11. document.getElementById('desdeotro').style.display='none';
  12. }
  13. }
  14. -->
  15. </script>

Código HTML:
Ver original
  1. //se le asigna un name al formulario de contacto.
  2. <form action="<?=$_SERVER['PHP_SELF']?>" method="post" name="fcontacto">
  3. //inputs
  4.  
  5. <p>A través de donde nos has conocido:<br />
  6. //importante llamar a la función
  7. <input type="radio" name="Conocido" value="Google" id="Conocido_0" onclick="mostrarReferencia();" /> Google
  8. <input type="radio" name="Conocido" value="Otros" id="Conocido_1" onclick="mostrarReferencia();" /> Otros
  9. </p>
  10.  
  11. //div oculto
  12. <div id="desdeotro" style="display:none;">
  13. <p>Referencia de la oferta:</p>
  14. <p><input type="text" name="otro" class="input" /></p>
  15. </div>

a un Select.

Lo que hace el código es hacer aparecer o desaparecer un campo input según la opción que se tilde, y yo quería que haga lo mismo pero según el "Option" del select que se eligiera, pero probé infinidad de cosas y ninguna me dio resultado, intenté cambiar el ".cheked" por ".selected", y muchas cosas más, pero no sé bien cómo funciona Javascript, si pudieran darme una mano, se los agradecería muchísimo

Gracias y saludos!
__________________
WWW.LLORK.COM - El futuro es nuestro
Blog de descargas, tutoriales, guías, noticias y más.
  #2 (permalink)  
Antiguo 02/06/2014, 10:40
 
Fecha de Ingreso: agosto-2013
Mensajes: 150
Antigüedad: 10 años, 8 meses
Puntos: 29
Respuesta: Adaptación de código (Radio a Select)

Variante con addEventListener:
Código Javascript:
Ver original
  1. window.onload = function() {
  2.         var nodo = document.getElementsByName('Conocido');
  3.  
  4.         nodo[0].addEventListener('click', mostrarReferencia);
  5.         nodo[1].addEventListener('click', mostrarReferencia);
  6.  
  7.         function mostrarReferencia() {
  8.           if (nodo[0].checked === true) {
  9.             document.getElementById('desdeotro').style.display = 'block';
  10.           } else {
  11.             document.getElementById('desdeotro').style.display = 'none';
  12.           }
  13.         }
  14.  
  15.       };
Código HTML:
Ver original
  1. <form action="<?=$_SERVER['PHP_SELF']?>" method="post" name="fcontacto">
  2.       <p>A través de donde nos has conocido:<br />
  3.         <input type="radio" name="Conocido" value="Google" id="Conocido_0" /> Google
  4.         <input type="radio" name="Conocido" value="Otros" id="Conocido_1" /> Otros
  5.       </p>
  6.       <input type="button" id="boton" value="boton" />
  7.     </form>
  8.     <div id="desdeotro" style="display:none;">
  9.       <p>Referencia de la oferta:</p>
  10.       <p><input type="text" name="otro" class="input" /></p>
  11.     </div>
  #3 (permalink)  
Antiguo 02/06/2014, 11:47
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Adaptación de código (Radio a Select)

¿Buscas hacer algo como esto?



Si es así, lo único que debes hacer es recorrer el conjunto de elementos <input> que deseas afectar según la selección en el elemento <select>. En el ejemplo, si la última parte del id del <input> es igual al valor seleccionado en el <select> o si se seleccionó la opción "Todos", se muestra el <input> coincidente o todos si se eligió la última opción. Para iterar sobre el conjunto de elementos <input>, utilizo la estructura Array.prototype.forEach.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #4 (permalink)  
Antiguo 02/06/2014, 12:19
 
Fecha de Ingreso: diciembre-2010
Mensajes: 180
Antigüedad: 13 años, 4 meses
Puntos: 5
Respuesta: Adaptación de código (Radio a Select)

Cita:
Iniciado por bathorz Ver Mensaje
Variante con addEventListener:
Código Javascript:
Ver original
  1. window.onload = function() {
  2.         var nodo = document.getElementsByName('Conocido');
  3.  
  4.         nodo[0].addEventListener('click', mostrarReferencia);
  5.         nodo[1].addEventListener('click', mostrarReferencia);
  6.  
  7.         function mostrarReferencia() {
  8.           if (nodo[0].checked === true) {
  9.             document.getElementById('desdeotro').style.display = 'block';
  10.           } else {
  11.             document.getElementById('desdeotro').style.display = 'none';
  12.           }
  13.         }
  14.  
  15.       };
Código HTML:
Ver original
  1. <form action="<?=$_SERVER['PHP_SELF']?>" method="post" name="fcontacto">
  2.       <p>A través de donde nos has conocido:<br />
  3.         <input type="radio" name="Conocido" value="Google" id="Conocido_0" /> Google
  4.         <input type="radio" name="Conocido" value="Otros" id="Conocido_1" /> Otros
  5.       </p>
  6.       <input type="button" id="boton" value="boton" />
  7.     </form>
  8.     <div id="desdeotro" style="display:none;">
  9.       <p>Referencia de la oferta:</p>
  10.       <p><input type="text" name="otro" class="input" /></p>
  11.     </div>
Hola! Gracias por responder! Aunque el código que estoy buscando es para implementarlo a un select, si bien esto es una variación aún así no se me ocurre ninguna manera de adaptarlo

Cita:
Iniciado por Alexis88 Ver Mensaje
¿Buscas hacer algo como esto?



Si es así, lo único que debes hacer es recorrer el conjunto de elementos <input> que deseas afectar según la selección en el elemento <select>. En el ejemplo, si la última parte del id del <input> es igual al valor seleccionado en el <select> o si se seleccionó la opción "Todos", se muestra el <input> coincidente o todos si se eligió la última opción. Para iterar sobre el conjunto de elementos <input>, utilizo la estructura Array.prototype.forEach.

Saludos
¡Genial! Era eso, muchísimas gracias :) Doy el tema por solucionado
__________________
WWW.LLORK.COM - El futuro es nuestro
Blog de descargas, tutoriales, guías, noticias y más.

Etiquetas: formulario, funcion, input, php, radio, select
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:22.