检索引导程序复选框的单击状态

时间:2019-02-05 17:44:40

标签: jquery bootstrap-4

我有以下引导HTML代码,我想确定是否单击了该复选框。
我尝试了以下代码:

$(document).on('click', '#myButton', function() {
  alert($('#myCheckbox').hasClass('selected'));
});
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" />

<div class="container">
  <div class="row">
    <label class="checkbox">
      <input type="checkbox" id="myCheckbox">
      <span class="checkmark"></span>
      A test checkbox
    </label>
  </div>
  <div type="button" id="myButton">Press me</div>
</div>

但是,无论false的状态如何,它总是返回checkbox

alert($('#myCheckbox').hasClass('active'));还会返回false

请注意,我尝试使用DOM Explorer来查看选中和取消选中该复选框后发生了什么变化,并且看不到任何变化。我想这是我的问题的一部分-如果回答者也可以解释这一点,将不胜感激!

1 个答案:

答案 0 :(得分:2)

您应该使用is(':checked')

$(document).on('click', '#myButton', function() {
  alert($('#myCheckbox').is(':checked'));
});
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" />

<div class="container">
  <div class="row">
    <label class="checkbox">
      <input type="checkbox" id="myCheckbox">
      <span class="checkmark"></span>
      A test checkbox
    </label>
  </div>
  <div type="button" id="myButton">Press me</div>
</div>