关于jQuery和复选框有几个问题,答案很好,Stack Overflow上提供了很好的答案和代码片段,但显然我已经设法误解了所有这些问题。
我的表单中包含以下HTML代码:
<input type="checkbox" name="copyAddress" id="copyAddress" value="1" />
Javascript代码如下:
$('#copyAddress').change(function () {
$(this).attr('checked')
? alert ("Checked")
: alert ("Unchecked");
根据this post,上述情况应该有效。我也尝试使用.trigger(),. click()等代替.change(),并使用if()而不是逻辑运算符作为条件。在所有情况下,上述Javascript代码都会被触发,但无论复选框的选中状态或未选中状态如何,我都会收到“未选中”警报。换句话说,触发不是这里的问题,它是未正确检测(或处理)的复选框的条件(已检查或未检查状态)。
显然我在这里忽略了一些东西。它是什么?
答案 0 :(得分:2)
试试这个:
$("#copyAddress").change(function () {
$(this).is(":checked") ? alert ("Checked") : alert ("Unchecked");
});
JSFiddle:http://jsfiddle.net/9MfLg/
答案 1 :(得分:1)
您可以像这样使用 prop() :
$('#copyAddress').change(function () {
$(this).prop('checked')
? alert ("Checked")
: alert ("Unchecked");
});
或:
$('#copyAddress').change(function () {
this.checked
? alert ("Checked")
: alert ("Unchecked");
});
答案 2 :(得分:0)
希望这个帮助
$('#copyAddress').on('change', function(){
if(this.checked){
// Do some action when checked
}else{
// Do some action when unchecked
}
});