我有以下引导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来查看选中和取消选中该复选框后发生了什么变化,并且看不到任何变化。我想这是我的问题的一部分-如果回答者也可以解释这一点,将不胜感激!
答案 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>