Ver Mensaje Individual
  #5 (permalink)  
Antiguo 19/02/2015, 15:26
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Onclick en radio button

Otra forma de hacerlo sería mediante una clase en la hoja de estilos que haga visible al elemento que corresponda con la opción marcada. Luego, cuando selecciones otra opción, solamente tienes que tomar al elemento que posea dicha clase y se la quitas para luego asignársela al elemento que corresponda con la nueva opción marcada.

Un ejemplo:

Código HTML:
Ver original
  1. Mostrar el primero <input type = "radio" name = "opcion" value = "opc1" checked />
  2. Mostrar el segundo <input type = "radio" name = "opcion" value = "opc2" />
  3. Mostrar el tercero <input type = "radio" name = "opcion" value = "opc3" />
  4.  
  5. <div id = "opc1" class = "visible">Primer Div</div>
  6. <div id = "opc2">Segundo Div</div>
  7. <div id = "opc3">Tercer Div</div>

Código CSS:
Ver original
  1. div{
  2.     width: 250px;
  3.     height: 50px;
  4.     opacity: 0;
  5. }
  6.  
  7. .visible{
  8.     opacity: 1;
  9. }

Código Javascript:
Ver original
  1. [].forEach.call(document.querySelectorAll("[name=opcion]"), function(radio){
  2.     radio.addEventListener("click", function(){
  3.         document.querySelector(".visible").className = "";
  4.         document.querySelector("#" + this.value).className = "visible";
  5.     }, false);
  6. });

Como verás, las opciones tienen por valor el id del <div> que le corresponde, además, por defecto marco a la primera opción y asigno la clase CSS 'visible' al primer <div>. En la hoja de estilos, asigno las respectivas dimensiones a los <div> y los hago opacos para que no se vean, pero como la clase 'visible' quita esa opacidad, al haberla asignado inicialmente al primer <div>, este estará visible desde el principio y así será con los demás <div> cuando se marquen las respectivas opciones.

En el código JavaScript, itero sobre el conjunto de elementos con el nombre 'opcion', es decir, las opciones. A cada una, le delego una función por cada vez que se le de un clic. En dicha función, tomo al <div> del documento que posea la clase 'visible', se la quito y se la asigno al <div> cuyo id corresponda con el valor de la opción marcada.

DEMO

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