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

时间:2017-03-13 06:41:54

标签: jquery html css

我使用以下方法制作了自定义复选框:

enter link description here

也可在stackoverflow上使用:enter link description here

但是我想检查框是否被交叉检查但是我失败了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');
        }
    });
});

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); }

<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>
&#13;
&#13;
&#13;

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

2 个答案:

答案 0 :(得分:3)

您可以使用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);
});

Here is the JSFiddle demo

答案 1 :(得分:2)

您的代码正常运行,但我做了一些更改,使用$(this)代替id选择器。

&#13;
&#13;
$(document).ready(function () {
    

    $('#demo_box_2').on('click',function () {
        if ($(this).is(':checked')) {
            alert('You have Checked it');
        } else {
            alert('You Un-Checked it');
        }
    });
});
&#13;
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); }
&#13;
<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>
&#13;
&#13;
&#13;