Foros del Web » Programando para Internet » Jquery »

jquery cambiar estilo radio button si checked

Estas en el tema de jquery cambiar estilo radio button si checked en el foro de Jquery en Foros del Web. hola, mediante jquery necesito saber que radioButton fue pulsado para modificar un estilo del .css. en total tengo 5 input radio. Código: if ($('input: radio: ...
  #1 (permalink)  
Antiguo 27/02/2012, 10:57
 
Fecha de Ingreso: febrero-2006
Mensajes: 233
Antigüedad: 18 años, 2 meses
Puntos: 3
jquery cambiar estilo radio button si checked

hola, mediante jquery necesito saber que radioButton fue pulsado para modificar un estilo del .css. en total tengo 5 input radio.

Código:
if ($('input: radio: checked')) //funciona
{
   $(this).css("background-color","red");
}
el caso es que necesito poner en color rojo sólo el que fue pulsado y no todos los radio, pero no encuentro solución.
(no sé si es correcto poner if ($('input: radio: checked')) ya que es muy genérico)

¿¿alguna ayuda?? gracias
  #2 (permalink)  
Antiguo 28/02/2012, 15:35
 
Fecha de Ingreso: febrero-2006
Mensajes: 233
Antigüedad: 18 años, 2 meses
Puntos: 3
Respuesta: jquery cambiar estilo radio button si checked

nadie???? :(
  #3 (permalink)  
Antiguo 28/02/2012, 18:00
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 1 mes
Puntos: 192
Respuesta: jquery cambiar estilo radio button si checked

Que yo sepa no se puede cambiar el fondo a un radiobutton. Al menos en Chrome y FF no lo hace.

Lo que yo haría es asignar una clase para tildado con los estilos que querés que tenga. Después con jQuery le das esa clase al hacer click, pero antes se la quitás a todos los que la tengan.

Código HTML:
Ver original
  1. <!DOCTYPE html>
  2. <script class="jsbin" src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
  3.  
  4.   .tildado{
  5.     width:300px;
  6.   }
  7.   </style>
  8.   $(function(){
  9.       $('input[type="radio"]').on('click',function(){
  10.        $('input[type="radio"].tildado').removeClass('tildado');
  11.         $(this).addClass('tildado');
  12.     });
  13.   });
  14.   </script>
  15. </head>
  16.   <p><label for="radio1">Opcion 1</label><input type="radio" id="radio1" name="radiogrupo" /></p>
  17.   <p><label for="radio2">Opcion 2</label><input type="radio" id="radio2" name="radiogrupo" /></p>
  18. </body>
  19. </html>

Te lo pongo como ejemplo, pero tiene muchas faltas. La más grave es que no vas a poder agrupar los radiobuttons. O sea, si tenés más de un grupo, cuando hagas click en alguno de ellos la clase se le va a quitar sin importar si pertenece a otro grupo.
__________________
nahueljose.com.ar
  #4 (permalink)  
Antiguo 01/03/2012, 02:59
 
Fecha de Ingreso: febrero-2006
Mensajes: 233
Antigüedad: 18 años, 2 meses
Puntos: 3
Respuesta: jquery cambiar estilo radio button si checked

gracias Naahuel! he añadido una clase tildado en el css con lo que quiero que haga al clicar el radio

te comento, cada radioButton tiene una imagen asociada y la idea es que al clicar a uno de los radio buttons, se cambie el borde del tag <img> , pero no consigo acceder al <img>

Código:
<div class="attributesImg">
              <input type="radio" id="attrib-2-50" value="50" name="id[2]"><br>
              <label for="attrib-2-50" class="attribsRadioButton five">
                       <img height="30" width="30" alt="" src="img01.jpg">
               </label>
</div>
notar que el tag imagen está dentro del <label> pero <label> no está dentro del <input radio> (entiendo que no es hijo)

Gracias por la info
  #5 (permalink)  
Antiguo 01/03/2012, 05:19
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 1 mes
Puntos: 192
Respuesta: jquery cambiar estilo radio button si checked

Y entonces asignale la clase a los labels usando .sibligins()

Código HTML:
Ver original
  1. <!DOCTYPE html>
  2. <script class="jsbin" src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
  3. <style type="text/css">
  4. label{
  5.     display:block;
  6. }
  7. .tildado img{
  8.     border:1px solid red;
  9. }
  10. $(function(){
  11.     $('input[type="radio"]').on('click',function(){
  12.         var id = $(this).attr('id');
  13.         $('label.tildado').removeClass('tildado');
  14.         $(this).siblings('label[for="'+id+'"]').addClass('tildado');
  15.     });
  16. });
  17. </head>
  18.     <div class="attributesImg">
  19.         <p>
  20.             <input type="radio" id="attrib-2-50" value="50" name="id[2]">
  21.             <label for="attrib-2-50" class="attribsRadioButton five">
  22.                 <img height="30" width="30" alt=""  src="http://www.bancogalicia.com/eGalicia/Home/HOMES/Home_Eminent/img/bullet_destacado4.png" />
  23.             </label>
  24.         </p>
  25.  
  26.         <p>
  27.             <input type="radio" id="attrib-2-51" value="50" name="id[2]">
  28.             <label for="attrib-2-51" class="attribsRadioButton five">
  29.                 <img height="30" width="30" alt="" src="http://www.bancogalicia.com/eGalicia/Home/HOMES/Home_Eminent/img/bullet_destacado4.png" />
  30.             </label>
  31.         </p>
  32.     </div>
  33. </body>
  34. </html>

Acomodé un poco tu código. Tratá de no usar <br> para hacer eso que hiciste, siempre se puede lograr con CSS.

Repito que ese código no es bueno pues es muy particular para ese caso tuyo y para ese enmarcado y no contempla múltiples grupos de radiobuttons.

Saludos.
__________________
nahueljose.com.ar
  #6 (permalink)  
Antiguo 01/03/2012, 06:00
 
Fecha de Ingreso: febrero-2006
Mensajes: 233
Antigüedad: 18 años, 2 meses
Puntos: 3
Respuesta: jquery cambiar estilo radio button si checked

Muchas Gracias!! ya casi funciona maestro, he tenido que hacer una adaptación para que pinte el bordeado en el tag <img> y no en el label (children('img')

al clicar marca bien el bordeado, el problema es al clicar una segunda imagen que no desmarca la primera ni las anteriores. creo que el problema está en el removeClass

Código:
$('label.tildado').children('img').removeClass('tildado');
				$(this).siblings('label[for="'+id+'"]').children('img').addClass('tildado');
Alguna ayuda??? Graciassss

Última edición por red_robe; 01/03/2012 a las 06:08
  #7 (permalink)  
Antiguo 01/03/2012, 06:20
 
Fecha de Ingreso: febrero-2006
Mensajes: 233
Antigüedad: 18 años, 2 meses
Puntos: 3
Respuesta: jquery cambiar estilo radio button si checked

ya funciona, gracias!

solución:
Código HTML:
$('label > img.tildado ').removeClass('tildado');
				$(this).siblings('label[for="'+id+'"]').children('img').addClass('tildado');
edito1: y para marcar uno inicalmente por defecto?
edito2: mierda, en IE no funciona. existe alguna posibilidad? Chrome y Firefox perfecto

Última edición por red_robe; 01/03/2012 a las 06:28

Etiquetas: estilo, radiobutton
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 01:31.