我的html页面上有一个表单,其中有一些复选框作为选项。其中一个选项是" check-all"并且我希望所有其他复选框在未经检查的情况下进行检查,只要" check-all"框已选中。我的代码看起来像这样:
<form method = "post" class = "notification-options">
<input type = "checkbox" name = "notification-option" id = "all-post" onClick = "javascript:checkALL(this
);"> All Posts <br/>
<input type = "checkbox" name = "notification-option" id = "others-post"> Other's Posts <br/>
<input type = "checkbox" name = "notification-option" id = "client-post"> Cilent's Post <br/>
<input type = "checkbox" name = "notification-option" id = "assign-post"> Task Assigned </form>
java脚本:
<script type = "text/javascript">
var $check-all = document.getElementbyId("all-post");
function checkALL($check-all){
if ($check-all.checked == true){
document.getElementByName("notification-option").checked = true;
}
}
</script>
运行我的代码时没有任何反应
答案 0 :(得分:1)
你可以使用jQuery这样做:
$("#all-post").change(function(){
$('input:checkbox').not(this).prop('checked', this.checked);
});
这是JSfiddle
答案 1 :(得分:1)
以下是一些指导原则。
type
属性不需要,可以省略。getElementById()
this
。传递的参数影响了
功能全局。if (checkAll.checked)
完成工作getElementsByName()
中的错字,gEBN()
返回HTMLCollection,
这是一个类似数组的对象。你要迭代了
集合,并将checked
分别设置为每个元素。固定代码:
<script>
var checkAll = document.getElementById("all-post");
function checkALL(){
var n, checkboxes;
if (checkAll.checked){
checkboxes = document.getElementsByName("notification-option");
for (n = 0; n < checkboxes.length; n++) {
checkboxes[n].checked = true;
}
}
}
</script>
您还可以省略javascript:
伪协议和来自在线处理程序的参数。
答案 2 :(得分:0)
如果选中所有帖子复选框,则会设置check = true of others-post和client-post复选框
$("input[id$=all-post]").click(function (e) {
if ($("input[id$=all-post]").is(':checked')) {
$("input[id$=others-post]").prop('checked', true);
$("input[id$=client-post]").prop('checked', true);
}
});
答案 3 :(得分:0)
检查是否先检查是否有任何复选框。
答案 4 :(得分:0)
<form method="post" id="notification-options">
<input type="checkbox" name="notification-option" id="all-post"> All Posts<br>
<input type="checkbox" name="notification-option" id="others-post"> Other's Posts<br>
<input type="checkbox" name="notification-option" id="client-post"> Cilent's Post<br>
<input type="checkbox" name="notification-option" id="assign-post"> Task Assigned
</form>
function checkAll(ev) {
checkboxes = document.getElementById('notification-options').querySelectorAll("input[type='checkbox']");
if (ev.target.checked === true) {
for (var i = 0; i < checkboxes.length; ++i) {
checkboxes[i].checked = true;
}
} else {
for (var i = 0; i < checkboxes.length; ++i) {
checkboxes[i].checked = false;
}
}
}