2 回答

TA貢獻1836條經驗 獲得超5個贊
我會將一個函數綁定到復選框,然后在此函數中,如果選中了復選框,您將找到closest父級<tr>并將每個子級設為只讀(不要擔心復選框本身,您仍然可以再次取消選中它們。更多信息這個)<input><tr><input>
試試這個片段
$("table input.makeReadOnly").change(function (){
if($(this).prop("checked")){
$(this).closest("tr").find("input").prop("readonly", true);
} else {
$(this).closest("tr").find("input").prop("readonly", false);
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<table>
<tbody>
<tr>
<td><input></td>
<td><input></td>
<td><input class="makeReadOnly" type="checkbox"></td>
</tr>
<tr>
<td><input></td>
<td><input></td>
<td><input class="makeReadOnly" type="checkbox"></td>
</tr>
</tbody>
</table>

TA貢獻1829條經驗 獲得超13個贊
您可以遍歷頁面上的復選框,然后從那里導航到 tr 屬性?但是,如果沒有任何代碼示例,很難理解,而且我對 SO 太陌生,無法發表評論。
var inputs = form.getElementsByTagName("input");
for (var i = 0; i < inputs.length; i++) {
if ($(inputs[i]).type == "checkbox" && $(inputs[i]).is(':checked')){
$(inputs[i]).closest('tr').prop('readonly', true);
}
}
可能太冗長并且可能會被追捕,但我認為它可能會有所幫助!
- 2 回答
- 0 關注
- 171 瀏覽
添加回答
舉報