如何计算所选复选框的数量,如何在选中后更改背景以及如何使鼠标悬停继续工作

约翰

我想创建一个复选框列表,用户可以选择它,但是,将复选框的数量限制为5,并向用户显示他们当前单击了多少。

选择复选框标签后,我还想更改其背景颜色。

我的主要问题是,显示已选中多少个复选框的数字总是落后一格。同样,背景颜色在被选择后会发生变化,但是如果被选择,则悬停呼叫将停止工作。

最后,我很想听听有关如何使计数功能更整洁的任何建议。我不喜欢7个if语句...

$(document).ready(function() {
  $("input[name='group_option[]']").change(function() {
    var maxAllowed = 5;
    var cnt = $("input[name='group_option[]']:checked").length;
    if (cnt > maxAllowed) {
      $(this).prop("checked", "");
    }
  });
});

function count() {

  var count = 0;
  if ($('#checkbox1').is(':checked')) {
    count = count + 1;
  }
  if ($('#checkbox2').is(':checked')) {
    count = count + 1;
  }
  if ($('#checkbox3').is(':checked')) {
    count = count + 1;
  }
  if ($('#checkbox4').is(':checked')) {
    count = count + 1;
  }
  if ($('#checkbox5').is(':checked')) {
    count = count + 1;
  }
  if ($('#checkbox6').is(':checked')) {
    count = count + 1;
  }
  if ($('#checkbox7').is(':checked')) {
    count = count + 1;
  }
  document.getElementById("count").innerHTML = count + "/5 Selected";
}
.options {
  background-color: #e6e6e6;
  display: block;
  width: 300px;
  margin-left: 20px;
  padding: 2px;
  margin-bottom: 1px;
}
.options:hover {
  color: black;
  cursor: pointer;
  transition-duration: .15s;
  background-color: #b3b3b3;
}
input {
  float: left;
}
label:hover {
  background-color: #bfbfbf;
}
input[type=checkbox]:checked + label {
  background-color: #cccccc;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<b id="count" style="float: left;">0/5 Selected</b>

<br>
<br>

<input id="checkbox1" type="checkbox" name="group_option[]" value="option1" />
<label for="checkbox1" class="options" onclick="count(this)">&nbsp;&nbsp;&nbsp;Option 1</label>
<input id="checkbox2" type="checkbox" name="group_option[]" value="option2" />
<label for="checkbox2" class="options" onclick="count(this)">&nbsp;&nbsp;&nbsp;Option 2</label>
<input id="checkbox3" type="checkbox" name="group_option[]" value="option3" />
<label for="checkbox3" class="options" onclick="count(this)">&nbsp;&nbsp;&nbsp;Option 3</label>
<input id="checkbox4" type="checkbox" name="group_option[]" value="option4" />
<label for="checkbox4" class="options" onclick="count(this)">&nbsp;&nbsp;&nbsp;Option 4</label>
<input id="checkbox5" type="checkbox" name="group_option[]" value="option5" />
<label for="checkbox5" class="options" onclick="count(this)">&nbsp;&nbsp;&nbsp;Option 5</label>
<input id="checkbox6" type="checkbox" name="group_option[]" value="option6" />
<label for="checkbox6" class="options" onclick="count(this)">&nbsp;&nbsp;&nbsp;Option 6</label>
<input id="checkbox7" type="checkbox" name="group_option[]" value="option7" />
<label for="checkbox7" class="options" onclick="count(this)">&nbsp;&nbsp;&nbsp;Option 7</label>

罗里·麦克罗森(Rory McCrossan)

不需要单独的count()函数,因为您可以在jQuerychange事件处理程序中完成所有必需的处理(并且on*事件属性被认为已过时,无论如何都应避免使用)。您已经在其中cnt存储了可以使用变量。试试这个:

$(document).ready(function() {
  var maxAllowed = 5;
  
  $("input[name='group_option[]']").change(function() {
    var cnt = $("input[name='group_option[]']:checked").length;
    if (cnt > maxAllowed)
      $(this).prop("checked", false);
    else        
      $('#count').text(cnt + '/5 Selected');
  });
});
.options {
  background-color: #e6e6e6;
  display: block;
  width: 300px;
  margin-left: 20px;
  padding: 2px;
  margin-bottom: 1px;
}
.options:hover {
  color: black;
  cursor: pointer;
  transition-duration: .15s;
  background-color: #b3b3b3;
}
input {
  float: left;
}
input:checked + label {
  background-color: #cccccc;
}
input:checked + label:hover {
  background-color: #bfbfbf;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<b id="count" style="float: left;">0/5 Selected</b><br><br>

<input id="checkbox1" type="checkbox" name="group_option[]" value="option1" />
<label for="checkbox1" class="options">&nbsp;&nbsp;&nbsp;Option 1</label>

<input id="checkbox2" type="checkbox" name="group_option[]" value="option2" />
<label for="checkbox2" class="options">&nbsp;&nbsp;&nbsp;Option 2</label>

<input id="checkbox3" type="checkbox" name="group_option[]" value="option3" />
<label for="checkbox3" class="options">&nbsp;&nbsp;&nbsp;Option 3</label>

<input id="checkbox4" type="checkbox" name="group_option[]" value="option4" />
<label for="checkbox4" class="options">&nbsp;&nbsp;&nbsp;Option 4</label>

<input id="checkbox5" type="checkbox" name="group_option[]" value="option5" />
<label for="checkbox5" class="options">&nbsp;&nbsp;&nbsp;Option 5</label>

<input id="checkbox6" type="checkbox" name="group_option[]" value="option6" />
<label for="checkbox6" class="options">&nbsp;&nbsp;&nbsp;Option 6</label>

<input id="checkbox7" type="checkbox" name="group_option[]" value="option7" />
<label for="checkbox7" class="options">&nbsp;&nbsp;&nbsp;Option 7</label>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何计算所选复选框值的总和?

来自分类Dev

如何限制所选复选框的数量?

来自分类Dev

如何限制所选复选框的数量?

来自分类Dev

加载脚本时如何在jquery中选中复选框时如何更改背景

来自分类Dev

选中复选框后,如何更改DIV的颜色?

来自分类Dev

选中复选框后,如何更改DIV的颜色?

来自分类Dev

将鼠标悬停在Material-UI React中时如何更改复选框样式和图标?

来自分类Dev

如何在鼠标悬停时更改按钮的背景

来自分类Dev

如何使复选框选中工作

来自分类Dev

CSS&HTML:将鼠标悬停时如何在复选框中放置图像(例如X / check)

来自分类Dev

选中后如何删除复选框

来自分类Dev

如何更改复选框的选中颜色?

来自分类Dev

选中复选框后如何在datagridview中更改行颜色

来自分类Dev

将鼠标悬停在提交/锚点上时如何检查复选框是否已选中并显示警报提示用户这样做

来自分类Dev

在继续之前,如何验证复选框是否已选中?

来自分类Dev

如何计算所选元素的数量?

来自分类Dev

如何获取所选复选框的数量(计数)?

来自分类Dev

如何计算列表视图中选中的复选框的数量

来自分类Dev

如何确定可在Android中选中的复选框数量?

来自分类Dev

如何根据选中的复选框数量显示/隐藏元素?

来自分类Dev

选中所有子复选框后,如何选中“全选”复选框?

来自分类Dev

如何在MFC中检查和取消选中以及启用和禁用复选框控件

来自分类Dev

选中复选框后,如何在待办事项应用程序中删除相应复选框的文本?

来自分类Dev

如果选中复选框,如何计算税款

来自分类Dev

如何根据选中的复选框计算总数。?

来自分类Dev

如何计算 Angular 7 中选中的复选框?

来自分类Dev

如何选中和取消选中复选框以及如何使复选框单击行外单击

来自分类Dev

如何使用鼠标悬停效果更改背景颜色?

来自分类Dev

当C#中的Checkbox值更改时,如何计算DataGridView中已选中的复选框?

Related 相关文章

  1. 1

    如何计算所选复选框值的总和?

  2. 2

    如何限制所选复选框的数量?

  3. 3

    如何限制所选复选框的数量?

  4. 4

    加载脚本时如何在jquery中选中复选框时如何更改背景

  5. 5

    选中复选框后,如何更改DIV的颜色?

  6. 6

    选中复选框后,如何更改DIV的颜色?

  7. 7

    将鼠标悬停在Material-UI React中时如何更改复选框样式和图标?

  8. 8

    如何在鼠标悬停时更改按钮的背景

  9. 9

    如何使复选框选中工作

  10. 10

    CSS&HTML:将鼠标悬停时如何在复选框中放置图像(例如X / check)

  11. 11

    选中后如何删除复选框

  12. 12

    如何更改复选框的选中颜色?

  13. 13

    选中复选框后如何在datagridview中更改行颜色

  14. 14

    将鼠标悬停在提交/锚点上时如何检查复选框是否已选中并显示警报提示用户这样做

  15. 15

    在继续之前,如何验证复选框是否已选中?

  16. 16

    如何计算所选元素的数量?

  17. 17

    如何获取所选复选框的数量(计数)?

  18. 18

    如何计算列表视图中选中的复选框的数量

  19. 19

    如何确定可在Android中选中的复选框数量?

  20. 20

    如何根据选中的复选框数量显示/隐藏元素?

  21. 21

    选中所有子复选框后,如何选中“全选”复选框?

  22. 22

    如何在MFC中检查和取消选中以及启用和禁用复选框控件

  23. 23

    选中复选框后,如何在待办事项应用程序中删除相应复选框的文本?

  24. 24

    如果选中复选框,如何计算税款

  25. 25

    如何根据选中的复选框计算总数。?

  26. 26

    如何计算 Angular 7 中选中的复选框?

  27. 27

    如何选中和取消选中复选框以及如何使复选框单击行外单击

  28. 28

    如何使用鼠标悬停效果更改背景颜色?

  29. 29

    当C#中的Checkbox值更改时,如何计算DataGridView中已选中的复选框?

热门标签

归档