简体   繁体   English

Bootstrap-multiselect显示隐藏div元素

[英]Bootstrap-multiselect show hide div elements

I am using bootstrap-multiselect for my task to show hide dynamic div's element based on multiple selected checkboxes. 我正在使用bootstrap-multiselect来执行任务,以基于多个选中的复选框显示隐藏动态div的元素。 The StackOverflow question I found here is only exposed about how to show hide multiselect based on selected multiselect, not div. 我在这里发现的StackOverflow问题仅公开了如何基于所选的multiselect(而不是div)显示隐藏的multiselect。

HTML code : HTML代码:

<select id="one" multiple="multiple">
  <option value="1">One</option>
  <option value="2">Two</option>
  <option value="3">Three</option>
</select>

<select id="two" multiple="multiple">
  <option data-group="1" value="OneA" disabled>One A</option>
  <option data-group="1" value="OneB" disabled>One B</option>
  <option data-group="2" value="TwoA" disabled>Two A</option>
  <option data-group="2" value="TwoB" disabled>Two B</option>
  <option data-group="3" value="ThreeA" disabled>Three A</option>
</select>

JavaScript code: JavaScript代码:

$(document).ready(function() {
  $('#one').multiselect({
    onChange: function(element, checked) {
      var opts = $('*[data-group="' + element.val() + '"]');
      console.log(opts);
      if (checked === true) {
        opts.prop('disabled', false).prop('selected', false);
      } else if (checked === false) {
        opts.prop('disabled', true).prop('selected', false);
      }
      $("#two").multiselect('refresh');
    }
  });
  $('#two').multiselect();
});

Besides, I am a beginner on bootstrap and jQuery. 此外,我还是Bootstrap和jQuery的初学者。 Could someone help me how to solve this issue please. 有人可以帮我如何解决这个问题。 Thank you. 谢谢。

This can be easily achieved. 这很容易实现。

For instance, add following Divs along your html code indicated above: 例如,沿着上面指示的html代码添加以下Divs:

<div data-group="1">data-group="1"</div>
<div data-group="2">data-group="2"</div>
<div data-group="2">data-group="2"</div>
<div data-group="3">data-group="3"</div>
<div data-group="3">data-group="3"</div>

and can easily manage Hide/Show of Divs in your js using: 并可以使用以下方法轻松管理js中的Div的隐藏/显示:

opts.css({'display':'none'}); opts.css({'display':'none'}); // to hide // 隐藏

opts.css({'display':'block'}); opts.css({'display':'block'}); // to show // 显示

<script>
    $(document).ready(function() {
        $('#one').multiselect({
            onChange: function(element, checked) {
                var opts = $('*[data-group="' + element.val() + '"]');
                console.log(opts);
                if (checked === true) {
                    opts.prop('disabled', false).prop('selected', false);
                    opts.css({'display':'block'});
                } else if (checked === false) {
                    opts.prop('disabled', true).prop('selected', false);
                    opts.css({'display':'none'});
                }
                $("#two").multiselect('refresh');
            }
        });
        $('#two').multiselect();
    });

</script>

You may customize it as you wish. 您可以根据需要自定义它。 eg, you may need to change data-group to myDiv-group for div elements and modify the javascript accordingly. 例如,您可能需要将div元素的data-group更改为myDiv-group并相应地修改javascript。

Hope this helped :) 希望这有帮助:)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM