我有2组文本框的切换复选框的jQuery用的onChange
<div id="createPackage" style="display:block; text-align:left">
<strong>Select Grade(s)</strong><a href="#" onclick="checkunCheckAll('grade')"><span id="selectAllgrade">Select All</span></a>
<table>
<tbody>
<tr>
<td>
<input type="checkbox" id="2" name="grade" value="2">
<label for="2" class="label-normal">Grade 2</label>
</td>
<td>
<input type="checkbox" id="3" name="grade" value="3">
<label for="3" class="label-normal">Grade 3</label>
</td>
<td>
<input type="checkbox" id="4" name="grade" value="4">
<label for="4" class="label-normal">Grade 4</label>
</td>
<td>
<input type="checkbox" id="5" name="grade" value="5">
<label for="5" class="label-normal">Grade 5</label>
</td>
<td>
<input type="checkbox" id="6" name="grade" value="6">
<label for="6" class="label-normal">Grade 6</label>
</td>
</tr>
</tbody>
</table>
<br>
<br>
<strong>Select Subject(s)</strong><a href="#" onclick="checkunCheckAll('grade')"><span id="selectAllsubject">Select All</span></a>
<table>
<tbody>
<tr>
<td class="td-left-spacing">
<input type="checkbox" id="ela" name="subject" value="ela">
<label for="ela" class="label-normal">ELA</label>
</td>
<td class="td-right-spacing">
<input type="checkbox" id="math" name="subject" value="math">
<label for="math" class="label-normal">Math</label>
</td>
</tr>
</tbody>
</table>
<br>
<br>
<br>
<input type="submit" name="submit" id="submit" value="Create Package(s)" class="center">
</div>
我写的复选框,在Javascript
function checkunCheckAll(name) {
var check = document.getElementById("selectAll" + name).innerHTML == "Select All"
var arrMarkMail = document.getElementsByName(name);
for (var i = 0; i < arrMarkMail.length; i++) {
arrMarkMail[i].checked = check;
}
if (check)
{
document.getElementById("selectAll" + name).innerHTML = "Unselect All";
document.getElementById("selectAll" + name).textContent = "Unselect All";
}
else
{
document.getElementById("selectAll" + name).innerHTML = "Select All";
document.getElementById("selectAll" + name).textContent = "Select All";
}
}
切换,但我想实现的“全选”切换类似于这里
http://jsfiddle.net/NogginBox/ScnQT/1/
但是,我想改变文本如果全部选中,则跨度表示“取消全选”。我也希望能够以编程方式检查每个组中是否至少有一个复选框被选中,如果是,请在底部显示提交按钮,如果不是这种情况,则隐藏。 jQuery中最简单的方法是什么?如果我不需要,我不想单独设置每个复选框的onchange。
我在简单的JavaScript的触发,但是,提交框隐藏介入位我想要最干净的代码可能乐。我已将js添加到该问题中。 –
@IsaacLevin:这与您的问题无关,但请记住,根据HTML规范,以数字开头的元素ID在技术上属于“非法”。 –
@Cory当然,我可以将其作为清理的一部分进行更改 –