JQuery отключить несколько входных дочерних элементов div - PullRequest
4 голосов
/ 24 февраля 2010

Я хочу сделать что-то вроде ниже из флажка,

В каждой строке есть флажок, и я хочу отключить все поля ввода в строке с классом .room, когда флажокнажал.

function toggleStatus(link) {
    $(link).closest(".room").children(':input').attr('disabled', true);
}

также пытался

function toggleStatus(link) {
    $(link).closest(".room").children('input[type=text]').attr('disabled', true);
}

1 Ответ

6 голосов
/ 24 февраля 2010

Ваш вопрос имеет некоторые двусмысленности, поэтому следующее может не быть точно , что вы ищете.

При нажатии вы должны пройти до ближайшей строки таблицы, найти все входные данные, имеющие имя класса .room, и установить их отключенный атрибут в соответствии со статусом самого флажка.

$(":checkbox").click(function(){
  $(this).closest("tr").find(":input.room")
    .attr("disabled", $(this).is(":checked"));
});

Это предполагает структуру, аналогичную следующей:

<table>
  <tbody>
    <tr>
      <td><input type="checkbox" /></td>
      <td><input type="text" class="room" /></td>
      <td><input type="text" class="room" /></td>
      <td><input type="text" class="room" /></td>
    </tr>
    <tr>
      <td><input type="checkbox" /></td>
      <td><input type="text" class="room" /></td>
      <td><input type="text" class="room" /></td>
      <td><input type="text" class="room" /></td>
    </tr>
  </tbody>
</table>

Онлайн-демонстрация: http://jsbin.com/umimu/edit

...