我需要做的是檢查複選框是否被選中,如果是,選擇位於同一元素內的所有單選按鈕?如何在選擇複選框時使用javascript選擇一排單選按鈕
我已經設置了id爲id的元素,b/c是將會相互影響的元素的「物理」分組。
我試圖做這樣的事情的onchange(「some_row_id」):
function select_row(row_id) {
// Get 1st td element (where checkbox is located) and assign its
// checked value to variable "checked"
var checked = document.getElementById(row_id).td[0].input.checked;
if(checked) {
var children = document.getElementById(row_id).childNodes;
for(var i = 0; i< children.length; i++) {
if(children.td.type == radio) {
children.td.radio = checked;
}
}
}
}
我知道的JavaScript幾乎是200%錯誤的,但我無法弄清楚如何正確地只選擇TD孩子(或者優秀的,只有輸入孫輩)的tr元素並檢查它們。
下面是實際工作的HTML的基本形態結構:
<form name="form2" action="testfile4.php" method="get">
<table border="1"><thead>
<tr><th>Select entire row</th><th>item_code</th><th>description</th><th>page</th>
</tr>
</thead>
<tbody>
<tr id="534">
<td ><input type="checkbox" onchange="select_row(534);"></td> <td>15038 <input type="radio" name="15819-038|item_code" value="534" /></td>
<td>For 1st item, alternate 1
<input type="radio" name="15819-038|description" value="534" /></td>
<td>5
<input type="radio" name="15819-038|page" value="534" /></td>
</tr>
<tr id="535">
<td ><input type="checkbox" onchange="select_row(535);"></td> <td>15038 <input type="radio" name="15819-038|item_code" value="535" /></td>
<td>For 1st item, alternate 2 <input type="radio" name="15819-038|description" value="535" /></td>
<td>5
<input type="radio" name="15819-038|page" value="535" /></td>
</tr>
</tbody>
</table>
</form>
編輯: 我願意接受jQuery的解決方案。謝謝。編輯2: 感謝nnnnnn。我用你的JS,並添加這個有我想要的不檢查行爲。如果你願意,你可以用它更新你的答案,我會從這裏將其刪除:
else if (!row.cells[0].childNodes[0].checked) {
inputs = row.getElementsByTagName("input");
for(var i=0; i<inputs.length; i++) {
if(inputs[i].type === "radio") {
inputs[i].checked = false;
}
}
}
這是使用jQuery的方式更簡單。只是在說'。 –
我很好用jQuery。讓我知道你是否有辦法做到這一點。謝謝。 –