单击复选框jQuery时禁用/启用输入

时间:2016-07-09 01:06:49

标签: javascript jquery forms

我试图仅在用户选中复选框时才允许启用表单中的提交按钮。我已经启动禁用按钮,然后在最初单击复选框时启用该按钮,但如果我取消选中该复选框,则该按钮不会重新启用。

HTML:

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

脚本:

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

有人可以帮忙吗?

3 个答案:

答案 0 :(得分:2)

您可以通过this.checked访问复选框状态,而不是$(this).checked。我建议使用change事件。

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

演示: https://jsfiddle.net/rbnndz23/

答案 1 :(得分:0)

您的问题在于条件。

jQuery对象没有checked属性,但DOM元素本身没有

而不是

if($(this).checked)

可以做到

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

或者

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

答案 2 :(得分:0)

您无需使用$(this).checked。而是尝试使用this.checked。请参阅here