复选框不会更改视觉状态

时间:2018-10-17 15:59:57

标签: javascript jquery checkbox

这可能很简单,但是我已经伤了一个小时了。 我有一个带有两个按钮的简单收音机:

<input class="form-control icheck" id="cash_prize" name="cash_prize" type="radio" value="1" style="position: absolute; opacity: 0;">
<input class="form-control icheck" id="noncash_prize" name="cash_prize" type="radio" value="0" style="position: absolute; opacity: 0;">

和一个复选框:

<input class="form-control icheck" id="issuable_via_logistics" name="issuable_via_logistics" type="checkbox" value="1" style="position: absolute; opacity: 0;">

在ID为“ cash_prize”的收音机中单击时,我启动了JS函数:

$('#cash_prize').on('ifChecked', function(){
    var chkbox = $('#issuable_via_logistics');
    chkbox.prop('checked', false);

如果我要检查复选框的状态,它会处于未选中状态,但是从视觉上看,它仍处于选中状态。拜托,如何改变呢?

4 个答案:

答案 0 :(得分:0)

试试看。这是我过去用来更改复选框状态的内容,也是this answer in another thread所说的应该很好的内容。

$('#cash_prize').on('ifChecked', function(){
    $('#issuable_via_logistics')[0].checked = false;

答案 1 :(得分:0)

使用$(element).iCheck('uncheck')

所以在您的情况下:

$('#issuable_via_logistics').iCheck('uncheck')

答案 2 :(得分:0)

这似乎可行...

<html>
<body>
cash prize: 
<input class="form-control icheck" id="cash_prize" name="cash_prize" type="radio">
<br />
non cashprize: 
<input class="form-control icheck" id="noncash_prize" name="cash_prize" type="radio">
<br />
<br />
checkbox: 
<input class="form-control icheck" id="issuable_via_logistics" name="issuable_via_logistics" type="checkbox" >

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
    $(document).ready(function () {
        $('#cash_prize').change(function () {
            if (this.checked) {
                $('#issuable_via_logistics').prop('checked', true);
            };
        });

        $('#noncash_prize').change(function () {
            if (this.checked) {
                $('#issuable_via_logistics').prop('checked', false);
            };
        });
    });
</script>

答案 3 :(得分:0)

这可能会助你一臂之力。

$('#cash_prize').change(function(){
 if ($(this).prop('checked'), true){
 	$('#issuable_via_logistics').prop('checked',false);
 }
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input id="cash_prize" name="cash_prize" type="radio" value="1">Prize 1
<input id="noncash_prize" name="cash_prize" type="radio" value="0" >Prize 2

<input id="issuable_via_logistics" name="issuable_via_logistics" type="checkbox" value="1" checked>