【问题标题】:Checkbox with selectall is not working带有 selectall 的复选框不起作用
【发布时间】:2018-03-27 04:02:53
【问题描述】:

我有 3 个复选框

  • 点击“A”复选框时,必须突出显示 A。
  • 点击“C”复选框时,“C”会突出显示。
  • 点击“B”复选框时,必须突出显示“A”和“B”。

.a {
  background-color: #ffffff;
  font-family: Lato;
  font-size: 11.2px;
  font-weight: 500;
  text-align: center;
  color: #6a7c94;
  padding: 2px;
  width: 100px;
  height: 34.2px;
  margin-bottom: 15px;
  box-shadow: 0 2px 7px 0 rgba(0, 0, 0, 0.15);
}

#checkboxes input[type=checkbox] {
  display: none;
}

#checkboxes input[type=checkbox]:checked+.a {
  border-top: 2px solid #39cd90;
  color: rgb(57, 205, 144);
  padding-top: 0px;
}
<div id="checkboxes">
  <input type="checkbox" name="rGroup" id="r1" />
  <label class="a" for="r1">A </label>
  <input type="checkbox" name="rGroup" id="r2" />
  <label class="a" for="r2">B </label>
  <input type="checkbox" name="rGroup" id="r3" />
  <label class="a" for="r3">C</label>
</div>

单击“B”时,如何将“A”和“B”都突出显示为多项选择。 这是我完整的code 如何实现这一点给出一些建议。

【问题讨论】:

  • 所以你想一次突出显示一个,或者你点击的任何内容都需要与你不清楚的前一个一起突出显示。
  • @ Vishal Taj PM 点击“B”复选框,“A”和“B”都应该突出显示,如果我点击“B”复选框,“A”和“B”都应该取消选中

标签: jquery html css twitter-bootstrap


【解决方案1】:

试试这个

$(document).ready(function() {
	
	var chk1 = $("#r1");
	var chk2 = $("#r2");
	
	chk2.on('change', function(){
		chk1.prop('checked',this.checked);
	});

  /*For getting values */
  $('.a').click(function() {
    if(!$(this).prev().is(':checked')) {
	  var val=$(this).prev().val();
	  console.log(val);
	  }
  });
});
.a{
   background-color: #ffffff;
  font-family: Lato;
  font-size: 11.2px;
  font-weight: 500;
  text-align: center;
  color: #6a7c94;
  padding: 2px;
  width: 100px;
  height: 34.2px;
  margin-bottom: 15px;
  box-shadow: 0 2px 7px 0 rgba(0, 0, 0, 0.15);
}

#checkboxes input[type=checkbox]{
    display: none;
}

#checkboxes input[type=checkbox]:checked + .a{
    border-top: 2px solid #39cd90;
  color: rgb(57, 205, 144);
  padding-top: 0px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="checkboxes">
   <input type="checkbox" name="rGroup" value="1" id="r1" />
  <label class="a" for="r1">A </label>
  <input type="checkbox" name="rGroup" value="2" id="r2" />
  <label class="a" for="r2">B </label>
  <input type="checkbox" name="rGroup" value="3" id="r3" />
  <label class="a" for="r3">C</label>
</div>

【讨论】:

  • 你能告诉我当它被选中时如何获取复选框的值。
  • 这可能对你有更多帮助stackoverflow.com/questions/11292778/…
  • 谢谢,但即使我取消选中,值也会被获取
  • 您可以在获取值之前添加一个条件(已编辑)
  • 它工作,但我需要知道哪个值属于哪个标签
【解决方案2】:

我修改了你的代码。查看js部分。

https://jsfiddle.net/s0wxewuv/13/

$(function() {
    $('#r2').on('change', function() {
        if ($(this).is(':checked')) {
            $('#r1').prop('checked', true);
            $('#r3').prop('checked', false);
        } else {
            $('#r1').prop('checked', false);
            $('#r3').prop('checked', false);
        }
    })
})

【讨论】:

    【解决方案3】:

    试试这个

    $('#r2').on("click",function(){
      var r1 = $('#r1');
      r1.prop('checked', true);
    });
    

    【讨论】:

    • @lakshmipriya 您需要将此代码放在 document.ready 中:像这样:$()document).ready(function(){ $('#r2').on("click",function(){ var r1 = $('#r1'); r1.prop('checked', true); }); })
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-23
    • 1970-01-01
    相关资源
    最近更新 更多