代码之家  ›  专栏  ›  技术社区  ›  Dennis

选中复选框的禁用和启用按钮

  •  1
  • Dennis  · 技术社区  · 7 年前

    我的窗体上有一个默认禁用的按钮

    <input disabled type="submit" value="" name="subscribe" id="mc-embedded-subscribe" class="subscribe__button">
    

    我还有一个选项复选框:

     <label class="subscribe__optin">
         <input id="optin" type="checkbox" value="true" name="optin"> Ja, ik ga akkoord met de privacyverklaring
     </label>
    

    $("#optin").on("change", function(e){
            if($("#optin").attr("checked")){
                $("#mc-embedded-subscribe").attr('disabled','disabled');
                console.log('checked');
            } else {
                $("#mc-embedded-subscribe").removeAttr('disabled');
                console.log('not checked');
            }
    });
    

    当我点击复选框时,我总是在控制台中得到“not checked”。 我已经在这里检查了一些关于stackoverflow的其他例子,但是这些似乎都不能解决我的问题。

    3 回复  |  直到 7 年前
        1
  •  1
  •   NitinSingh    7 年前
        2
  •  0
  •   Dennis    7 年前

    已经找到了解决方案。似乎.attr()就是问题所在。我必须使用.prop()

    $("#optin").on("change", function(e){
            if($("#optin").prop("checked")){
                $("#mc-embedded-subscribe").removeAttr('disabled');
                console.log('enabled');
            } else {
                $("#mc-embedded-subscribe").attr('disabled','disabled');
                console.log('disabled');
    
            }
    });
    
        3
  •  0
  •   qocu    7 年前

        if($("#optin").attr("checked")){
    

    尝试:

        if($(this)[0].checked){