自定义复选框:如何检查复选框是否被选中

use*_*878 1 html css jquery

我使用这个制作了自定义复选框:

在此处输入链接描述

也可在 stackoverflow 上找到:在此处输入链接描述

但我正在尝试检查框是否被交叉检查,但我失败了 bcz jquery 没有显示任何内容。

$(document).ready(function () {
    var ckbox = $('#demo_box_2');

    $('#demo_box_2').on('click',function () {
        if (ckbox.is(':checked')) {
            alert('You have Checked it');
        } else {
            alert('You Un-Checked it');
        }
    });
});
Run Code Online (Sandbox Code Playgroud)
input[type=checkbox].css-checkbox { position: absolute;  overflow: hidden;  clip: rect(0 0 0 0);  height:1px;  width:1px;  margin:-1px;  padding:0; border:0; } 
input[type=checkbox].css-checkbox + label.css-label { padding-left:20px; height:15px;  display:inline-block; line-height:15px; background-repeat:no-repeat; background-position: 0 0; font-size:15px; vertical-align:middle; cursor:pointer; } 
input[type=checkbox].css-checkbox:checked + label.css-label { background-position: 0 -15px; }  .css-label{ background-image:url(http://csscheckbox.com/checkboxes/lite-x-red.png); }
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
<input id="demo_box_2" class="css-checkbox" type="checkbox" />
<label for="demo_box_2" name="demo_lbl_2" class="css-label">Selected Option</label>
</form>
Run Code Online (Sandbox Code Playgroud)

我不知道我是否正确地将 id 传递给 jquery 但仍然无法理解我错在哪里。

Ahs*_*s N 5

您可以使用 JQuery.is(":checked")来执行此操作,如下所示:

$("input[type=checkbox]").click(function() {
  var msg = "";
  $("input[type=checkbox]").each(function() {
    if ($(this).is(":checked")) {
      msg += "#" + $(this).attr("id") + " is checked!\n";
    } else {
      msg += "#" + $(this).attr("id") + " is NOT checked!\n";
    }
  });
  alert(msg);
});
Run Code Online (Sandbox Code Playgroud)

这是JSFiddle 演示