2009-05-27 11 views
10

Tengo el siguiente código jquery que funciona bien.cómo realizar eventos cuando una casilla de verificación está marcada/desmarcada en jquery

$('#onlyTwo').click(function() { 
       $("#textarea3").attr("disabled", true); 
       $("#textarea4").attr("disabled", true); 
       $("#radio3").attr("disabled", true); 
       $("#radio4").attr("disabled", true); 
       return true; 
      }); 

Esto hace que algunos campos se deshabiliten cuando se hace clic en la casilla "solo Dos". ¿Cómo puedo hacer que estos campos enabed de nuevo cuando la casilla de verificación 'onlyTwo' no está marcada ...

básicamente quiero saber cómo averiguar si se comprueba una casilla de verificación o no

Respuesta

18

o

$('#onlyTwo').click(function(){ 
    var stuff = $("#textarea3, #textarea4, #radio3, #radio4"); 
    stuff.attr("disabled", $(this).is(":checked")); 
}); 
+0

if ($ (this) .is (" : checked ")} tuvo que ser cambiado a if ($ (this) .is (": checked ")) pero aparte de eso funciona! ¡Gracias! – n00bstackie

2
$('#onlyTwo').click(function() { 
    var elements = ['textarea3', 'textarea4', 'radio3', 'radio4']; 
    var checked = $(this).attr('checked'); 

    jQuery.each(elements, function(element) { 
     if (checked) { 
     $('#'+element).attr('disabled', true); 
     } else { 
     $('#'+element).removeAttr('disabled'); 
     } 
    }); 
}) 

eso es una solución sencilla para Alternar el atributo deshabilitado en todos los elementos que desee cuando se marca $('#onlyTwo').

Problemas de arreglos arreglados, jaja, esto estaba lleno de pequeños errores.

+0

wow, eso es increíble. ¿Dónde estás buscando "alternar"? Además, obtengo un error de sintaxis en ')};' – n00bstackie

+0

se produce un error de sintaxis al cerrar la segunda función. en la segunda última línea del código que publicó – n00bstackie

+0

Recibo una 'matriz no está definida Error de línea 40' ahora en tiempo de ejecución :( – n00bstackie

5
$('#onlyTwo').change(function() { 
    $('.disableMe').attr('disabled', $(this).is(':checked')); 
}); 

Así que hay que agregar la clase 'disableMe' a todas las entradas, las áreas de texto, selecciona ... que desea desactivar.

Cuestiones relacionadas