jQuery disabilitare più figli di ingresso di un div
-
22-09-2019 - |
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);
}
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