как выполнять события, когда флажок установлен / снят в jquery - PullRequest
10 голосов
/ 27 мая 2009

У меня есть следующий код jquery, который отлично работает.

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

Это делает некоторые поля отключенными, когда установлен флажок «onlyTwo». Как я могу снова включить эти поля, когда флажок onlyTwo не установлен ...

В основном я хочу знать, как узнать, установлен флажок или нет

Ответы [ 3 ]

18 голосов
/ 27 мая 2009

или

$('#onlyTwo').click(function(){
   var stuff = $("#textarea3,  #textarea4, #radio3, #radio4");
   stuff.attr("disabled", $(this).is(":checked"));
});
5 голосов
/ 27 мая 2009
$('#onlyTwo').change(function() {
    $('.disableMe').attr('disabled', $(this).is(':checked'));
});

так что вам нужно добавить класс 'disableMe' ко всем входам, textareas, select ... которые вы хотите отключить.

2 голосов
/ 27 мая 2009
$('#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');
       }
     });
})

Это простое решение для переключения атрибута disabled на все элементы, которые вы хотите, когда отмечен $('#onlyTwo').

Исправлены проблемы с массивами, лол, это было полно мелких ошибок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...