チェックボックスをクリックをしたときに、階層的にチェックのON/OFFをする

チェックボックスをクリックをしたときに、階層的にチェックのON/OFFをしたいときがあります。

jQueryを使って簡単にチェックのON/OFFができます。

HTML

<div id="treeList">
  <ul>
    <li>
      <label><input type="checkbox" name="item[]" value="A">A</label>
      <ul>
        <li><label><input type="checkbox" name="item[]" value="A1">A-1</label></li>
        <li>
          <label><input type="checkbox" name="item[]" value="A2">A-2</label>
          <ul>
            <li>
              <label><input type="checkbox" name="item[]" value="A21">A-21</label>
              <ul>
                <li>
                  <label><input type="checkbox" name="item[]" value="A31">A-31</label>
                </li>
              </ul>
            </li>
            <li>
              <label><input type="checkbox" name="item[]" value="A22">A-22</label>
            </li>
          </ul>
        </li>
      </ul>
    </li>
  </ul>
</div>

Javascript

<script>

$(function() {
    
    $("#treeList input[type=checkbox]").click(function(event) {
        var $element = $(event.target);    
        var checked = $element.attr('checked');

        $element.closest("li").find('ul li input[type=checkbox]').each(function() {
            if (checked) {
                $(this).attr("checked", checked);
            }
            else {
                $(this).removeAttr('checked');
            }
        });
    });
});
</script>

The following two tabs change content below.

taira

Sofrware Engineer.

Comments are closed.