如何使用jQuery捕獲/取消選中<input type="checkbox" />
事件?檢查複選框的更改事件
回答
<input type="checkbox" id="something" />
$("#something").click(function(){
if($(this).is(':checked')) alert("checked");
});
編輯:這樣做時複選框其他原因比點擊變化,比如使用鍵盤不會趕上。爲避免此問題,請收聽change
而不是click
。
爲了檢查/編程取消選中,看看Why isn't my checkbox change event triggered?
document.getElementById('something')。checked works,why $('#something')。checked不行? – omg 2009-09-21 15:52:45
你的代碼缺少一個paran,並且確實應該使用獲取檢查狀態的jQuery方法。 – 2009-09-21 15:53:16
因爲$('#something')返回一個jQuery對象而不是ElementNode – 2009-09-21 15:53:45
$(document).ready(function(){
checkUncheckAll("#select_all","[name='check_boxes[]']");
});
var NUM_BOXES = 10;
// last checkbox the user clicked
var last = -1;
function check(event) {
// in IE, the event object is a property of the window object
// in Mozilla, event object is passed to event handlers as a parameter
event = event || window.event;
var num = parseInt(/box\[(\d+)\]/.exec(this.name)[1]);
if (event.shiftKey && last != -1) {
var di = num > last ? 1 : -1;
for (var i = last; i != num; i += di)
document.forms.boxes['box[' + i + ']'].checked = true;
}
last = num;
}
function init() {
for (var i = 0; i < NUM_BOXES; i++)
document.forms.boxes['box[' + i + ']'].onclick = check;
}
HTML:
<body onload="init()">
<form name="boxes">
<input name="box[0]" type="checkbox">
<input name="box[1]" type="checkbox">
<input name="box[2]" type="checkbox">
<input name="box[3]" type="checkbox">
<input name="box[4]" type="checkbox">
<input name="box[5]" type="checkbox">
<input name="box[6]" type="checkbox">
<input name="box[7]" type="checkbox">
<input name="box[8]" type="checkbox">
<input name="box[9]" type="checkbox">
</form>
</body>
使用下面的代碼snipp等來實現這一目標。:
$('#checkAll').click(function(){
$("#checkboxes input").attr('checked','checked');
});
$('#UncheckAll').click(function(){
$("#checkboxes input").attr('checked',false);
});
或者你也可以做同樣的單複選框:
$('#checkAll').click(function(e) {
if($('#checkAll').attr('checked') == 'checked') {
$("#checkboxes input").attr('checked','checked');
$('#checkAll').val('off');
} else {
$("#checkboxes input").attr('checked', false);
$('#checkAll').val('on');
}
});
的點擊會影響標籤,如果我們有一個附到輸入複選框?
我認爲這是更好地使用.change()函數
3210的jQuery 1.7+使用:
$('input[type=checkbox]').on('change', function() {
...
});
根據我的經驗,我已經利用該事件的currentTarget當前:
$("#dingus").click(function (event) {
if ($(event.currentTarget).is(':checked')) {
//checkbox is checked
}
});
此代碼做什麼你的需要:
<input type="checkbox" id="check" >check it</input>
$("#check").change(function(){
if($(this).is(':checked')) {
alert("checked");
}else{
alert("unchecked");
}
});
此外,您可以檢查它jsfiddle
- 1. 複選框「檢查」事件
- 2. 如何檢查更改事件的複選框狀態
- 3. 如何在android複選框檢查更改時接收事件?
- 4. 更改類以檢查複選框JavaScript
- 5. 改變事件的proccess之前jQuery的檢查複選框做
- 6. ASP.NET MVC檢測事件(點擊,下拉更改,複選框檢查)
- 7. 複選框檢查,未經檢查的事件的jQuery
- 8. 瀏覽器檢測 - 複選框更改事件
- 9. 如何在不觸發更改事件的情況下檢查複選框?
- 10. 單選按鈕更改事件後未複選複選框
- 11. 檢查/取消選中父複選框,如果所有取消選中/檢查與jQuery更改事件
- 12. 當我檢查複選框選項後,爲什麼我的複選框選項文本更改爲檢查?
- 13. 多個複選框選擇與延遲檢查其他複選框更改
- 14. LongListSelector與TextBlock和複選框 - 如何更改複選框的檢查狀態
- 15. 複選框沒有取消選中jquery的更改事件
- 16. 通過事件中的另一個複選框更改複選框
- 17. 當檢查框時,複選框值不會更改
- 18. 如何在c#中更改複選框值時在DataGridView中檢查複選框?
- 19. wpf listbox複選框更改顏色時檢查或選擇
- 20. 檢查複選框
- 21. jQueryMobile複選框觸發整個控件組的更改事件
- 22. jQuery - 檢測複選框已更改
- 23. 複選框更改被檢測兩次
- 24. 如何在ITextSharp中更改複選框的檢查類型
- 25. 更改檢查複選框Jquery的背景圖像?
- 26. WPF複選框:檢查更改的處理
- 27. JavaScript的複選框:使用按鈕來更改組來檢查
- 28. 我該如何檢查Android的Listivew的ItemClickListener事件複選框?
- 29. 更改事件觸發的選擇框
- 30. 檢查複選框選中
如果您正在使用JQuery的一個相對較新的版本,我會用的。對(「變」,函數(){...}),如提及@Daniel De Leon的答案在下面。一個優點是,「on」事件監聽器將綁定到動態生成的html。 – BLang 2018-03-08 14:31:47