Làm cách nào để tôi nắm bắt/bỏ chọn sự kiện <input type="checkbox" />
bằng jQuery?Bắt sự kiện thay đổi đã kiểm tra của hộp kiểm
Trả lời
<input type="checkbox" id="something" />
$("#something").click(function(){
if($(this).is(':checked')) alert("checked");
});
Edit: Việc làm này sẽ không bắt khi hộp kiểm thay đổi vì lý do khác hơn là một nhấp chuột, như sử dụng bàn phím. Để tránh sự cố này, hãy nghe change
thay vì click
.
Đối với kiểm tra/bỏ chọn lập trình, hãy nhìn vào Why isn't my checkbox change event triggered?
document.getElementById ('something') .kiểm tra hoạt động, tại sao $ ('# something'). không làm việc? – omg
Mã của bạn thiếu một dấu ngoặc đơn và thực sự nên sử dụng cách jQuery để nhận trạng thái kiểm tra. –
Vì $ ('# something') trả về một đối tượng jQuery không phải là một ElementNode –
sử dụng sự kiện nhấp chuột để tương thích tốt nhất với MSIE
$(document).ready(function() {
$("input[type=checkbox]").click(function() {
alert("state changed");
});
});
$(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>
Hey! Buddy, bạn đang làm gì ở đây? – omg
Trông giống như một lựa chọn phạm vi (ví dụ: kiểm tra mục đầu tiên, giữ shift xuống, kiểm tra cái cuối cùng, và tất cả những cái giữa được chọn.) Tuy nhiên, điều này là nhiều hơn so với câu hỏi yêu cầu. Thiếu một số mã mặc dù, như checkUncheckAll(). – joelsand
Sử dụng các đoạn mã dưới đây et để đạt được này .:
$('#checkAll').click(function(){
$("#checkboxes input").attr('checked','checked');
});
$('#UncheckAll').click(function(){
$("#checkboxes input").attr('checked',false);
});
Hoặc bạn có thể làm tương tự với hộp kiểm tra duy nhất:
$('#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');
}
});
Đối với bản demo: http://jsfiddle.net/creativegala/hTtxe/
Các nhấp chuột sẽ ảnh hưởng đến nhãn nếu chúng ta có một gắn vào hộp kiểm đầu vào?
Tôi nghĩ rằng đó là tốt hơn để sử dụng .change() chức năng
<input type="checkbox" id="something" />
$("#something").change(function(){
alert("state changed");
});
Đối với JQuery 1.7+ sử dụng:
$('input[type=checkbox]').on('change', function() {
...
});
Theo kinh nghiệm của tôi, tôi đã tận dụng currentTarget của sự kiện :
$("#dingus").click(function (event) {
if ($(event.currentTarget).is(':checked')) {
//checkbox is checked
}
});
mã này làm những gì nhu cầu của bạn:
<input type="checkbox" id="check" >check it</input>
$("#check").change(function(){
if($(this).is(':checked')) {
alert("checked");
}else{
alert("unchecked");
}
});
Ngoài ra, bạn có thể kiểm tra nó trên jsfiddle
- 1. Cần sự kiện thay đổi hộp kiểm để phản hồi thay đổi trạng thái đã kiểm tra được lập trình
- 2. Bootstrap chuyển sự kiện đã kiểm tra?
- 3. Sự cố trong sự kiện Đã kiểm tra sự kiện
- 4. Làm cách nào để nhận thay đổi kiểm tra sự kiện trên hộp kiểm android?
- 5. Sự kiện thay đổi kích hoạt jquery trên hộp kiểm
- 6. cách thay đổi hình ảnh kiểm tra trên hộp kiểm
- 7. jQuery khác biệt giữa sự thay đổi và nhấp vào sự kiện của hộp kiểm
- 8. Có cách nào để ngăn Hộp kiểm WPF kích hoạt sự kiện Đã kiểm tra của nó không?
- 9. Cách đếm số hộp kiểm đã được kiểm tra
- 10. Kiểm tra sự kiện socket.io
- 11. JavaScript - cách kiểm tra xem sự kiện đã được thêm
- 12. Các sự kiện của hộp kiểm Jquery Jstree chụp
- 13. Kiểm tra nếu hộp kiểm đã được kiểm tra trên tải sử dụng jQuery
- 14. jQuery/Javascript: Nhấp vào sự kiện trên một hộp kiểm và 'kiểm tra' thuộc tính
- 15. Sự kiện thay đổi hộp kiểm Knockout gửi giá trị cũ
- 16. Bootstrap không sử dụng thuộc tính "đã kiểm tra" của hộp kiểm
- 17. Thay đổi nhãn của một hộp kiểm JQuery Mobile
- 18. C# PrintDocument Sự kiện đã thay đổi
- 19. Kiểm tra đơn vị sự kiện COM?
- 20. Thuộc tính kiểm tra hộp kiểm Ngọc không được kiểm soát dựa trên điều kiện (nếu)
- 21. Kiểm tra xem một mô hình đã được sửa đổi hoặc tạo trên sự kiện before_save
- 22. Thay đổi tên hộp kiểm mẫu excel
- 23. Sự kiện kích hoạt Jquery cho hộp kiểm
- 24. kiểm tra jquery nếu hộp kiểm asp được kiểm tra
- 25. Mặc định kiểm tra một hộp kiểm
- 26. Thay đổi hình ảnh kiểm tra hộp kiểm thành hình ảnh tùy chỉnh
- 27. Tại sao tự động thay đổi hộp kiểm không kích hoạt sự kiện thay đổi biểu mẫu?
- 28. thay đổi màu đường viền hộp kiểm
- 29. Kiểm tra hộp kiểm jQuery/bỏ chọn
- 30. FDF - cách kiểm tra hộp kiểm?
Nếu bạn đang sử dụng một phiên bản tương đối mới của JQuery, tôi sẽ sử dụng .Trên ('thay đổi', function() {...}) như đã đề cập trong Câu trả lời của @Daniel De Leon bên dưới. Một lợi thế, trình nghe sự kiện "bật" sẽ liên kết với html được tạo động. – BLang