#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);
});
});
Комментарии:
1. Потрясающе, спасибо. Теперь я попытаюсь разобраться в этом, чтобы я мог учиться.
2. Рад, что смог помочь. Позвольте мне добавить некоторые пояснения к вашей и другим ссылкам.
3. Также спасибо за разъяснения.