2017-02-06 83 views
0

不同的动作我想要是相当简单,但由于某种原因,我不能得到它的工作:做基于复选框状态

我需要一种方法来做到基于复选框的状态不同的动作。如果它被检查,做一些事情。如果没有,请做其他事情。出于某种原因,我只能有 “选中” 状态:

$('#checkbox1').on('change', function() { 
    if ($('#checkbox1:checked')) { 
     console.log('do something') 
    } else { 
     console.log('do something else') 
    } 
}); 

Codepen:http://codepen.io/anon/pen/EZROGa?editors=1010

我缺少什么?

+0

的[检查是否复选框被使用jQuery检查]可能的复制(http://stackoverflow.com/questions/2204250/check-if-checkbox-is-checked-with- jquery) – Keatinge

+0

if($('#checkbox1')。(':checked')){' – Developer

+0

'if($(this).is(':checked')){'更具可读性 –

回答

2

使用试试这个:

$('#checkbox1').on('change', function() { 
    if($(this).is(':checked')) // here $(this) refers to $('#checkbox1') 
    { 
    // do some thing 
    } 
    else 
    { 
    // do some thing 
    } 
}); 
1

$('#checkbox1').on('change', function() { 
 
    if ($('#checkbox1').is(":checked")) { 
 
    console.log('do something') 
 
    } else { 
 
    console.log('do something else') 
 
    } 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="checkbox" id="checkbox1" />

这样

0

在这里你去:

$('#checkbox1').on('change', function() { 
    if ($('#checkbox1:checked').length) { 
    console.log('do something') 
    } else { 
    console.log('do something else') 
    } 
}) 
1
$('#checkbox1').on('change', function() { 
    if ($(this).is(":checked")) { 
    console.log('do something') 
    } else { 
    console.log('do something else') 
    } 
}) 
1

正确的语法是:

`$('#checkbox1').on('change', function() { 
    if ($('#checkbox1').prop('checked')) { 
    console.log('do something') 
    } else { 
    console.log('do something else') 
    } 
})` 
1

可以使用.prop() jQuery函数。

$('#checkbox1').on('change', function() { 
    if ($('#checkbox1').prop("checked")) { 
    console.log('do something') 
    } else { 
    console.log('do something else') 
    } 
}) 

http://api.jquery.com/prop/

0

我喜欢采取这种做法干净

var check = $("#checkbox1:checked").length; 

if(check) //Do Something. 
1

$('#checkbox1').on('change', function() { 
 
    if ($(this).is(":checked")) { 
 
    console.log('do something') 
 
    } else { 
 
    console.log('do something else') 
 
    } 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id="checkbox1" name="checkbox1" type="checkbox"><label for="checkbox1">some checkbox</label>

尝试上述一个。 'this'关键字指向当前的html元素。

0

试试这个:

$('#checkbox1').on('click', function() { 
if ($(this).prop("checked") == true) { 
    console.log('do something') 
} else { 
    console.log('do something else') 
} 
})