How To Enable The Checkbox Based On Selected Item In JQuery

admin_img Posted By Bajarangi soft , Posted On 16-10-2020

In JQuery we can disable and enable check boxes, based on dropdown select item or select item ,So In this article we dicuss how to do it using jquery.

How To Enable The Checkbox Based On Selected Item In JQuery

Step 1:Create index.html file and implement below code.
 

<select class="form-control limiter" data-prev-limit="1" >
    <option value="1" selected>Single</option>
    <option value="2">Two</option>
    <option value="3">Three</option>
</select>
<br><br>

<!-- checkboxes -->
<div class="boxes">
    <input type="checkbox" value="first" id="cbox1" />
    <label for="cbox1">First option</label><br>
    <input type="checkbox" value="second" id="cbox2" />
    <label for="cbox2">Second option</label><br>
    <input type="checkbox" value="third" id="cbox3" />
    <label for="cbox3">Third option</label><br>
    <input type="checkbox" value="fourth" id="cbox4" />
    <label for="cbox4">Fourth option</label><br>
    <input type="checkbox" value="fifth" id="cbox4" />
    <label for="cbox5">Fifth option</label><br>
</div>


Step 2:Implement jQuery to enable or disable on select of dropdown.
 

<script>
    $(document).ready( () => {
        // short script to dynamically limit the amount of selectable checkboxes
        let checkLimit = $(".limiter").val();
        let totalChecked = 0;

        $(".limiter").on("change", function(e) {
            // refactor to keep selections when updating limit;
            checkLimit = $(this).val();
            $("input[type=checkbox]").each(function() {
                $(this).prop("checked", false);
                $(this).prop("disabled", false);
            });
        });

        $(".boxes").on("change", "input[type=checkbox]", function(e) {
            totalChecked = $("input[type=checkbox]:checked").length;

            if (totalChecked < checkLimit) {
                // keep options open and restore if unchecking option
                $(this).siblings("input[type=checkbox]").each(function() {
                    if ($(this).not("checked")) $(this).prop("disabled", false);
                });
            }

            if (totalChecked == checkLimit) {
                // disable all empty checkboxes
                $("input[type=checkbox]").each(function() {
                    $(this).prop("disabled", true);
                });

                // prevent earlier checks from being disabled..
                $("input[type=checkbox]:checked").each(function (){
                    $(this).prop("disabled", false);
                });
            }
        });
    });
</script>


Complete Code For Enable The Checkbox Based On Selected Item In JQuery

 

<!DOCTYPE html>
<html>
<head>
    <title>How To Enable The Checkbox Based On Selected Item In JQuery</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<style>
    body {
        background: black;
    }
</style>
<body>
<div class="container">
    <br><br><br>
    <div class="text-center">
        <h1 id="color" style="color: White;">Enable The Checkbox Based On Selected Item In JQuery</h1>
    </div>
    <br>
    <div class="col-md-2"></div>
    <div class="col-md-8">
        <div class="well">

            <select class="form-control limiter" data-prev-limit="1">
                <option value="1" selected>Single</option>
                <option value="2">Two</option>
                <option value="3">Three</option>
            </select>
            <br><br>

            <!-- checkboxes -->
            <div class="boxes">
                <input type="checkbox" value="first" id="cbox1"/>
                <label for="cbox1">First option</label><br>
                <input type="checkbox" value="second" id="cbox2"/>
                <label for="cbox2">Second option</label><br>
                <input type="checkbox" value="third" id="cbox3"/>
                <label for="cbox3">Third option</label><br>
                <input type="checkbox" value="fourth" id="cbox4"/>
                <label for="cbox4">Fourth option</label><br>
                <input type="checkbox" value="fifth" id="cbox4"/>
                <label for="cbox5">Fifth option</label><br>
            </div>


            <script>
                $(document).ready(() => {
                    // short script to dynamically limit the amount of selectable checkboxes
                    let checkLimit = $(".limiter").val();
                    let totalChecked = 0;

                    $(".limiter").on("change", function (e) {
                        // refactor to keep selections when updating limit;
                        checkLimit = $(this).val();
                        $("input[type=checkbox]").each(function () {
                            $(this).prop("checked", false);
                            $(this).prop("disabled", false);
                        });
                    });

                    $(".boxes").on("change", "input[type=checkbox]", function (e) {
                        totalChecked = $("input[type=checkbox]:checked").length;

                        if (totalChecked < checkLimit) {
                            // keep options open and restore if unchecking option
                            $(this).siblings("input[type=checkbox]").each(function () {
                                if ($(this).not("checked")) $(this).prop("disabled", false);
                            });
                        }

                        if (totalChecked == checkLimit) {
                            // disable all empty checkboxes
                            $("input[type=checkbox]").each(function () {
                                $(this).prop("disabled", true);
                            });

                            // prevent earlier checks from being disabled..
                            $("input[type=checkbox]:checked").each(function () {
                                $(this).prop("disabled", false);
                            });
                        }
                    });
                });
            </script>
        </div>
    </div>
    <div class="col-md-2"></div>
</div>
</body>
</html>

Related Post