我试图实现我的程序的一小部分,当一个初始复选框被点击时,它会打开多个复选框打开供选择。我不想使用forloop(或动态)来创建多个复选框,但我需要手动创建它们。
我的程序在下面,我不知道为什么它不工作。如果有人能指出我的错误,我将不胜感激。我不擅长PHP/JavaScript。
谢谢!
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
<script type="text/javascript">
$(document).ready(function() {
//set initial state.
$('#checkbox').val($(this).is(':unchecked'));
$('#checkbox').change(function() {
if($(this).is(":checked")) {
var box = document.createElement("div");
box.innerHTML = <input type="chkbox" name="checkme"> 2nd checkbox;
document.myForm.appendChild(box);
hasBox = true;
}
});
});
</script>
</head>
<body>
<p>Click on this paragraph.</p>
<form action="">
<input id="checkbox" name="click" type="checkbox" onclick="check(this)"/>initial checkbox<br>
</body>
</html>
你也可以使用CSS:
.secondary-checkboxes
{
display: none;
}
.primary-checkbox:checked ~ .secondary-checkboxes
{
display: initial;
}
<input type="checkbox" class="primary-checkbox"> Primary checkbox
<br>
<div class="secondary-checkboxes">
<input type="checkbox"> Secondary checkbox 1
<br>
<input type="checkbox"> Secondary checkbox 2
<br>
<input type="checkbox"> Secondary checkbox 3
<br>
</div>
来源:this Stack Overflow问题
你做对了。
你的代码有几个问题。
1)你忘了把你的新复选框标签用引号括起来。
box.innerHTML = <input type="chkbox" name="checkme"> 2nd checkbox;
应: box.innerHTML = "<input type='"checkbox'" name='"checkme'"> 2nd checkbox<br>";
还要注意type从"chkbox"变为"checkbox"
2)为了设置一个复选框的初始状态,我将使用JQuery内置的prop函数。例如:
$('#checkbox').prop('checked', false);
而不是你的代码
$('#checkbox').val($(this).is(':unchecked'));
3)最后一个问题是当您将新的复选框附加到表单。我的方法是再次使用JQuery:
$("#myForm").append(box);
并给form元素一个id为"myForm"
请在下面找到我的完整代码,可以满足您的要求:
$(document).ready(function() {
//set initial state.
$('#checkbox').prop('checked', false);
$('#checkbox').on('click', function() {
if($(this).is(":checked")) {
var box = document.createElement("div");
box.innerHTML = "<input type='"checkbox'" name='"checkme'"> 2nd checkbox<br>";
$("#myForm").append(box);
hasBox = true;
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<p>Click on this paragraph.</p>
<form action="" id="myForm">
<input id="checkbox" name="click" type="checkbox"/>initial checkbox<br>
</form>
希望对您有用