Domanda

Io voglio fare fare qualcosa di simile sotto da una casella di controllo,

C'è una casella di controllo su ogni riga, e mi piacerebbe disattivare tutti i campi di inserimento su una riga con la .Camera classe quando la casella di controllo viene cliccato.

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

anche cercato

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

Soluzione

La tua domanda ha alcune ambiguità, in modo che il seguito non può essere esattamente quello che stai cercando.

Al click, si dovrebbe attraversare fino al più vicino table-row, trovare tutti gli ingressi hanno lo .room nome di classe e impostare il loro disabile-attributo in base allo stato della casella di controllo stesso.

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

Questa assume una struttura simile a quella che segue:

<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>

Demo online: http://jsbin.com/umimu/edit

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top