简体   繁体   中英

How to disable button after reaching condition in laravel

I am using laravel and stuck in a condition. i add counter and a condition that when counter equals to 4 disable the button and no more item added. this is my code

var increment = 0;
$(document).ready(function(){
    $(".compare").click(function(){
        increment++;
        document.getElementById('compare').innerHTML = "";
        document.getElementById('compare').innerHTML = "Compare (" +increment+")";
                if(increment == 4)
                {
                    var array =  document.getElementsByClassName('compare');
                    for (var i = 0 ; i < array.length ; i++)
                    {
                        array[i].setAttribute('disabled','');
                    }
                }

i want's to disable button after reaching the limit and no more item added from anywhere if the counter equals to 4.

 var increment = 0; $(document).ready(function() { $(".compare").click(function() { increment++; document.getElementById('compare').innerHTML = ""; document.getElementById('compare').innerHTML = "Compare (" + increment + ")"; if (increment == 4) { var array = document.getElementsByClassName('compare'); for (var i = 0; i < array.length; i++) { array[i].setAttribute('disabled', ''); } } }) })
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <button class="compare" id="compare">INCREMENT</button>

Not really Laravel related, but you don't need jQuery just to add a counter. Vanilla JS gets the job done:

<button id="btn" onclick="buttonCheck()">Click me</button>

<script>
    var counter = 0;

    function buttonCheck(){
        counter++;

        if (counter >= 4)
            document.getElementById("btn").setAttribute("disabled", "disabled");
    }
</script>

Seeing that you already have jQuery in your code. I'll give an example using jQuery.

var increment = 0;
$(document).ready(function(){
    $(".compare").click(function(){
        increment++;
        document.getElementById('compare').innerHTML = "";
        document.getElementById('compare').innerHTML = "Compare (" +increment+")";

        if(increment == 4)
        {
             $(".compare").prop("disabled", true); 
             //prop() is used to set attribute value of an html element
        }
    }
}

Most of the time, this would work. But in some cases that it won't, you could manipulate this with CSS.

var increment = 0;
$(document).ready(function(){
    $(".compare").click(function(){
        increment++;
        document.getElementById('compare').innerHTML = "";
        document.getElementById('compare').innerHTML = "Compare (" +increment+")";

        if(increment == 4)
        {
             $(".compare").css("pointer-events", "none");
        }
    }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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