2016-04-26 5 views
0

У меня есть checkbox и 3 radio buttons, я стараюсь, чтобы иметь один из radio buttons выбирается, если флажок установлен, и есть какие-либо из них не-Выбирается, если checkbox снят.Checkbox кнопок управления радио

Мое решение работает при первом запуске, но не будет выбирать переключатель после первого нажатия.

$('#checkbox-h-2g').click(function() { 
    if ($('#checkbox-h-2g').is(":checked")) { 
     $('#r1').attr('checked', true); 
    }if (!$('#checkbox-h-2g').is(":checked")) { 
     $('#r1 , #r2, #r3').attr('checked', false); 
    } 
}); 
+0

В вашем втором 'if' вы должны использовать каждый цикл по каждому радио и сделать его не-проверено , То же самое должно пойти на проверенный вариант. – skywalker

ответ

1

Использование .prop() вместо .attr(), чтобы установить свойство, Кроме того, ваш код может быть улучшено, как

$('#checkbox-h-2g').change(function() { 
    if (this.checked) { 
     $('#r1').prop('checked', true); 
    }else{ 
     $('#r1 , #r2, #r3').prop('checked', false); 
    } 
}); 
+1

Также лучше использовать событие изменения, так как вы можете использовать клавиатуру, чтобы установить флажок. – jcubic

+0

Обычно вы можете использовать клавиатуру, чтобы щелкнуть (пробел), событие изменения запускается только при размывании – mplungjan

+0

@jcubic. Многие браузеры вызывают обработчик 'click', когда состояние« check-box »изменяется. [Ref] (https: //www.w3.org/TR/WCAG20-TECHS/SCR35) – Rayon

Смежные вопросы