2017-02-06 71 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') 
} 
})