javascript - JavaScript 中的复选框

标签 javascript html checkbox

我有一个问题。我必须创建一个包含五个复选框的表单。

  1. 用户必须恰好选中五个复选框中的三个。
  2. 在更改复选框时更新复选框处的标记
  3. 当用户按下第四个元素时,应该以红灯亮起。

<强>3。当您取消选择任何项目标记时,它会消失(白色)并且其余部分为绿色。

这是我完成的:http://jsfiddle.net/epredator/98TfU/

和我的一些代码,因为我不能在文本中没有一些代码的情况下发布 JSfiddle 链接 ;):

 function checkGreen() {
        if (this.checked && counter >= 3) {
            console.log("if test in checkGreen()");
        }
    }

我对第 3 点有疑问,因为在取消选中一个带有绿灯的复选框后,我不知道如何将红灯变为绿灯。我花了很多时间在上面。如您所见,我不是 Javascript 的大师,并向您寻求帮助,请帮助我 :) ... 最后我必须使用纯 JavaScript(没有 jQuery)。非常感谢您的帮助...

最佳答案

下面是我的做法。它比你以前的做法更干净。 FIDDLE .保留一组选中的框,并使用它来确定哪些应该是什么颜色。

(function() {
  var checked = [];

  document.getElementById("Checkbox1").addEventListener("click",toggle);
  document.getElementById("Checkbox2").addEventListener("click",toggle);
  document.getElementById("Checkbox3").addEventListener("click",toggle);
  document.getElementById("Checkbox4").addEventListener("click",toggle);
  document.getElementById("Checkbox5").addEventListener("click",toggle);

  function toggle() {
    if (this.checked) {
        checked.push(this);
    } else {
        var index = checked.indexOf(this);
        var box = checked.splice(index,1)[0];
        box.nextElementSibling.className = "white";
    }
    refresh();
  }

  function refresh() {
    for (var i = 0; i < checked.length; i++) {
        if (i < 3) {
            checked[i].nextElementSibling.className = "green";
        } else {
            checked[i].nextElementSibling.className = "red";
        }
    }

  }

}());

关于javascript - JavaScript 中的复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23481871/

相关文章:

html - 调整图像大小时,mozilla firefox 上出现奇怪的图像边界

html - 在 IE11 中选择一个选项后下拉菜单向上移动

javascript - jQuery Checkbox 未选中检测问题

javascript - 如果选中复选框,文本框将计算

javascript - 替换文本区域中的确切文本

javascript - 未捕获的 TypeError : elements[i]. attr 不是函数

javascript - 动态添加过滤器到 SVG

html - 创建一个 'New' 带有 24 点或以上点爆发的尖峰标签

javascript - 选中 div 之间的复选框

android - 如何去掉 CheckBox 右边不需要的空格?