【发布时间】:2016-06-16 00:13:23
【问题描述】:
我有 2 组文本框
<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 确定我可以在清理过程中更改它
标签: javascript jquery html