簡體   English   中英

如何在正確選中復選框時啟用?

[英]How to enable when checkbox is checked correctly?

我試圖在選中復選框時啟用按鈕,但我不知道我的代碼做錯了什么。

 $(document).ready(function() { $(".checkboxdav").on("change", function(e) { if ($(".checkboxdav").attr("checked")) { $(".submit").removeAttr("disabled"); } else { $(".submit").attr("disabled", "disabled"); } }); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="custom-control custom-checkbox"> <input type="checkbox" class="custom-control-input checkboxdav" id="customCheck1"> <label class="custom-control-label" for="customCheck1">Declaro que tengo la autorización del propietario del vehículo para suministrar sus datos a Davivienda para la compra del SOAT.</label> </div> <div class="col-12 px-0 d-flex justify-content-center mt-3"> <button type="submit" id="submit-form" class="submit primary-btn px-4 py-2" disabled>Cotizar</button> </div>

checked屬性值不會隨着復選框的狀態而改變,而checked屬性會。 因此,確定復選框是否被選中的跨瀏覽器兼容的方法是使用如下屬性:

  • if ( elem.checked )
  • if ( $( elem ).prop( "checked" ) )
  • if ( $( elem ).is( ":checked" ) )

因此,您可以更新您的代碼,例如:

if ($(".checkboxdav").is(":checked")) {
   $(".submit").prop('disabled', false);
} else {
   $(".submit").prop('disabled', true);
}

這段代碼應該可以正常工作。

<!DOCTYPE html>
<html>
<head>
  <title>Bootstrap Example</title>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>
</head>
<body>

<div class="container">
  <h2>Dropdowns</h2>
  <p>The .dropdown class is used to indicate a dropdown menu.</p>
  <p>Use the .dropdown-menu class to actually build the dropdown menu.</p>
  <p>To open the dropdown menu, use a button or a link with a class of .dropdown-toggle and data-toggle="dropdown".</p>                                          
   <input type="checkbox" class="custom-control-input checkboxdav" id="customCheck1">
                    <label class="custom-control-label" for="customCheck1">Declaro que tengo la autorización del
                        propietario del vehículo para suministrar sus datos a Davivienda para la compra del
                        SOAT.</label>
                </div>
                <div class="col-12 px-0 d-flex justify-content-center mt-3">
                    <button type="submit" id="submit-form" class="submit primary-btn px-4 py-2"
                        disabled>Cotizar</button>
                </div>
</div>

</body>
<script>
 $(document).ready(function() {

  $(".checkboxdav").on("change", function(e) {
    if ($(".checkboxdav").is(":checked")) {
      $(".submit").prop('disabled', false);
    } else {
      $(".submit").prop('disabled', true);
    }
  });
});
</script>
</html>

嘗試以下代碼。

$('.checkboxdav').on('change', function (e) {
     e.preventDefault();
     if ($(this).is(':checked')) {
         $('#submit-form').attr('disabled', true);
     } else {
         $('#submit-form').removeAttr('disabled', 'disabled');
     }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM