samedi 12 mars 2016

How to unhecked parent checkbox

I have nested checkboxes on my page and if I click parent checkbox child checkbox being checked it's okey so far.but if I click child checkbox I want parent click has to be unchecked how to do ?

html

<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>No Title</title>
    </head>
    <body>
        <div class="new-checkbox">
            <ul>
                <li>
                    <input type="checkbox" id="input1"><label for="input1">kategori 1</label>
                    <ul>
                        <li><input type="checkbox" id="input11"><label for="input11">kategori 11</label></li>
                        <li><input type="checkbox" id="input12"><label for="input12">kategori 12</label></li>
                        <li><input type="checkbox" id="input13"><label for="input13">kategori 13</label></li>
                    </ul>
                </li>
                <li><input type="checkbox" id="input2"><label for="input2">kategori 2</label></li>
                <li>
                    <input type="checkbox" id="input3"><label for="input3">kategori 3</label>
                    <ul>
                        <li><input type="checkbox" id="input31"><label for="input31">kategori 31</label></li>
                        <li><input type="checkbox" id="input32"><label for="input32">kategori 32</label></li>
                        <li>
                            <input type="checkbox" id="input33"><label for="input33">kategori 33</label>
                            <ul>
                                <li><input type="checkbox" id="input331"><label for="input331">kategori 331</label></li>
                                <li><input type="checkbox" id="input332"><label for="input332">kategori 332</label></li>
                                <li><input type="checkbox" id="input333"><label for="input333">kategori 333</label></li>
                            </ul>
                        </li>
                    </ul>
                </li>
            </ul>
        </div>
        <!--new-checkbox-->
        <script type="text/javascript" src="http://ift.tt/1QN6lc1" ></script>
    </body>
</html>

css

.new-checkbox ul {
  padding: 0;
  margin: 0;
  list-style: none;
  margin-left: 30px;
  font: normal 11px/16px"Segoe UI", Arial, Sans-serif;
}
.new-checkbox ul:first-child {
  margin-left: 0;
}
.new-checkbox ul li {
  margin: 3px 0;
}
.new-checkbox input[type="checkbox"] {
  display: none;
}
.new-checkbox label {
  cursor: pointer;
}
.new-checkbox input[type="checkbox"] + label:before {
  border: 1px solid #ffffff;
  content: "\00a0";
  display: inline-block;
  font: 16px/1em sans-serif;
  height: 13px;
  width: 13px;
  margin: 2px .25em 0 0;
  padding: 0;
  vertical-align: top;
  border: solid 1px #1375b3;
  color: #1375b3;
  opacity: .50;
}
.new-checkbox input[type="checkbox"]:checked + label:before {
  background: #fff;
  color: #1375b3;
  content: "\2714";
  text-align: center;
  box-shadow: 0 0 2px rgba(0, 0, 0, .25) inset;
  opacity: 1;
}
.new-checkbox input[type="checkbox"]:checked + label:after {
  font-weight: bold;
}

jquery

$(document).ready(function() {
  $('.new-checkbox input[type=checkbox]').on("click", function() {
    if ($(this).is(':checked')) {
      // check all children
      $(this).parent().find('li input[type=checkbox]').prop('checked', true);
      // check all parents
      $(this).parent().prev().prop('checked', true);
    } else {
      // uncheck all children
      $(this).parent().find('li input[type=checkbox]').prop('checked', false);
    }
  });
});

on codepen




Aucun commentaire:

Enregistrer un commentaire