简体   繁体   中英

Disable/Enable Input when checkbox is clicked jQuery

I'm attempted to only allow the submit button in a form to be enabled when a user has checked off a checkbox. I've gotten the button to start disabled, then become enabled when the checkbox is initially clicked on, but if I then uncheck the checkbox, the button doesn't become re-enabled.

HTML:

<input type="checkbox" id="waivercheck">
<input class="submit join-button" type="submit" value="Join Now" id="joinevent" disabled>

Script:

$(document).ready(function() {
    $('#waivercheck').click(function(){
        if($(this).checked){
            $('#joinevent').prop("disabled",false);   
        } else {
            $('#joinevent').prop("disabled",true);
        }
    });
});

Can anyone help?

You can access the checkbox status via this.checked and not $(this).checked . And I recommend using the change event.

$(document).ready(function() {
    $('#waivercheck').change(function(){        
        if(this.checked){
            $('#joinevent').prop("disabled",false);   
        } else {
            $('#joinevent').prop("disabled",true);
        }
    });
});

Demo: https://jsfiddle.net/rbnndz23/

Your issue is with the conditional.

A jQuery object doesn't have a checked property but the DOM element itself does

Instead of

if($(this).checked)

Can do

// native element has checked property
if(this.checked)

Or

// jQuery is() with pseudo selector
if($(this).is(':checked'))

You don't need to use $(this).checked . Instead try using this.checked . See here .

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