Задать вопрос
@inkyrein
Начинаю постигать WEB-программирование

Как сделать disable только для определенный radio?

Привет всем, подскажите как сделать неактивным checkbox (id="parts_clear") если выбран radio id="image_upload", и если выбран id="parts_upload" то чекбокс опять активный стал?

<input type="radio" id="parts_upload" class="icheck-input" value="Part_upload" name="upload">
    <input type="radio" id="image_upload" class="icheck-input" value="Image_upload" name="upload">

   <input type="checkbox" id="parts_clear" class="icheck-input" value="Part_clear" name="clearer">


вот так у меня не работает -
$(function() {
  $("[value=Image_upload]").click(
       $("#parts_clear").attr("disabled", true);
   );
 });
  • Вопрос задан
  • 534 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 2
Apathetic
@Apathetic
Frontend
(function ($) {
    'use strict';
    
    $('[name=upload]').on('change', function (e) {
        var selected = $('[name=upload]:checked'),
            checkbox  = $('#parts_clear');
        
        if ('image_upload' === selected.attr('id')) {
            checkbox.prop('disabled', true);
        } else {
            checkbox.prop('disabled', false);
        }
        
    });
}(jQuery));

jsfiddle.net/jfyn99kb

P.S. Считаю более корректным в данной ситуации обрабатывать не событие клика, а событие изменения состояния.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@lega
Сделал пример на Angular Light (если захотите попробовать что-то более высоко-уровневое).
Тут все просто:
1) al-radio="upload" value="Image_upload" -> устанавливает переменную upload="Image_upload"
2) al-disable="upload == 'Image_upload'" -> ставит disable если выполняется условие upload == 'Image_upload'
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы