在选中所有输入复选框后,我需要在元素中添加一个类,而无需单击提交按钮。我更喜欢不涉及jQuery,因为这将是页面上唯一的javascript元素。这是我到目前为止所看到的,它是在第一次单击复选框后添加类,这不是我想要的。
JS
function showMe (box) {
var checkbox = document.getElementsByName("selectPlant");
for(var i=0;i<checkbox.length;i++) {
if(checkbox[i].checked){
document.getElementById(box).classList.add('show');
}
}
}
HTML
<a href="#" id="reward" style="opacity:0">
TADA!
</a>
<form action="" id="">
<input type="checkbox" name="selectPlant" onclick="showMe('reward')">
<input type="checkbox" name="selectPlant" onclick="showMe('reward')">
<input type="checkbox" name="selectPlant" onclick="showMe('reward')">
<input type="checkbox" name="selectPlant" onclick="showMe('reward')">
</form>
CSS
#reward {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: red;
color: white;
pointer-events: none;
}
#reward.show {
opacity: 1 !important;
}
input[type=checkbox] {
width: 40px;
height: 40px;
}
任何帮助都是极好的!
如果勾选了特定的复选框,则需要获取复选框的总数并增加计数器。如果数字匹配,则必须勾选所有复选框。
function showMe (box) {
var checkbox = document.getElementsByName("selectPlant");
var counter=0;
for(var i=0;i<checkbox.length;i++) {
if(checkbox[i].checked){
counter++;
}
if(counter==checkbox.length)
{
document.getElementById(box).classList.add('show');
}
}
}
除了正常行为外,如果没有复选框,此答案将默认为true
function showMe (box) {
var checkbox = document.getElementsByName("selectPlant");
var allChecked=true;
for(var i=0;i<checkbox.length;i++) {
if(!checkbox[i].checked){
allChecked = false;
}
}
if(allChecked){
document.getElementById(box).classList.add('show');
}
}
您可以为长度复选框添加变量,并将i与长度进行比较。
var length = checkbox.length;
var check = 0;
for(var i=0;i<checkbox.length;i++) {
if(checkbox[i].checked){
check++;
}
if (check == length){
document.getElementById(box).classList.add('show');
}
}
function showMe (box) {
var checkbox = document.getElementsByName("selectPlant");
var length = checkbox.length;
var check = 0;
for(var i=0;i<checkbox.length;i++) {
if(checkbox[i].checked){
check++;
}
if (check == length){
document.getElementById(box).classList.add('show');
}
}
}
#reward {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: red;
color: white;
pointer-events: none;
}
#reward.show {
opacity: 1 !important;
}
input[type=checkbox] {
width: 40px;
height: 40px;
}
<a href="#" id="reward" style="opacity:0">
TADA!
</a>
<form action="" id="">
<input type="checkbox" name="selectPlant" onclick="showMe('reward')">
<input type="checkbox" name="selectPlant" onclick="showMe('reward')">
<input type="checkbox" name="selectPlant" onclick="showMe('reward')">
<input type="checkbox" name="selectPlant" onclick="showMe('reward')">
</form>