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

Disable/Enable Input when checkbox is clicked jQuery

本文关键字:启用 输入 jQuery 复选框 单击      更新时间:2023-09-26

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

.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);
        }
    });
});

谁能帮忙?

您可以通过 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/

您的问题与条件有关。

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

而不是

if($(this).checked)

可以做

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

// jQuery is() with pseudo selector
if($(this).is(':checked'))
你不需要

使用 $(this).checked .而是尝试使用 this.checked .看这里。