Как мне отключить / включить непроверенные флажки ввода — jQuery

#javascript #jquery

#javascript #jquery

Вопрос:

У меня есть несколько строк флажков в таблице. Когда проверяется один ввод, мне нужно отключить два других в той же строке таблицы. Однако, если я вернусь и сниму флажок ввода, мне нужно установить значение disabled равным false для двух других.

 <table>
        <tr class="row1"><td>Row 1</td><td><input type="checkbox" value="1" name="">Row 1 Column 1</td><td><input value="2" type="checkbox" name="">Row 1 Column 2</td><td><input value="3" type="checkbox" name="">Row 1 Column 3</td></tr>

        <tr class="row2"><td>Row 2</td><td><input type="checkbox" name=""></td><td><input type="checkbox" name=""></td><td><input type="checkbox" name=""></td></tr>
 

Ответ №1:

Когда check вы checked=true хотите, чтобы другие были отключены disabled=true , и наоборот. Таким образом, одно и то же состояние true/false одного (проверенного) контролирует состояние других.

После этого остальная часть кода будет простой, найдите родительский tr элемент, затем все checkbox элементы, но нет this , и установите их disabled свойство в [логическое] значение checked .

 $(function() {
   $(':checkbox').on('change',function() {
        var checked = this.checked;
        $(this).closest('tr').find(':checkbox').not(this).prop('disabled',checked);
    });
});
 

РАБОЧАЯ ДЕМОНСТРАЦИЯ JS FIDDLE

Комментарии:

1. Потрясающе, спасибо. Теперь я попытаюсь разобраться в этом, чтобы я мог учиться.

2. Рад, что смог помочь. Позвольте мне добавить некоторые пояснения к вашей и другим ссылкам.

3. Также спасибо за разъяснения.