我需要做的是检查复选框是否被选中,如果是,选择位于同一元素内的所有单选按钮?如何在选择复选框时使用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。让我知道你是否有办法做到这一点。谢谢。 –