2011-12-19 28 views
32

Tôi có một hộp kiểm nhập có cùng tên và tôi muốn xác định hộp kiểm nào đã được kiểm tra bằng javascript, làm thế nào tôi có thể đạt được điều đó? Tôi chỉ biết làm thế nào để có được tất cả các hộp kiểm bên như sau:Cách nhận tất cả các hộp kiểm đã chọn

var checkboxes = document.getElementsByName('mycheckboxes'); 
+1

vâng có đã nhưng tất cả trong số họ, giải pháp là với JQuery, và tôi cần một giải pháp JS đơn giản, đó là sự khác biệt. –

+0

Hãy xem qua quá http://stackoverflow.com/questions/1543017/javascript-check-all-checkboxes-in-a-table-asp-net – Lijo

Trả lời

68

Một đơn giản cho vòng lặp mà kiểm tra các checked tài sản và gắn thêm những người kiểm tra để một mảng riêng biệt. Từ đó, bạn có thể xử lý mảng thêm checkboxesChecked nếu cần.

// Pass the checkbox name to the function 
function getCheckedBoxes(chkboxName) { 
    var checkboxes = document.getElementsByName(chkboxName); 
    var checkboxesChecked = []; 
    // loop over them all 
    for (var i=0; i<checkboxes.length; i++) { 
    // And stick the checked ones onto an array... 
    if (checkboxes[i].checked) { 
     checkboxesChecked.push(checkboxes[i]); 
    } 
    } 
    // Return the array if it is non-empty, or null 
    return checkboxesChecked.length > 0 ? checkboxesChecked : null; 
} 

// Call as 
var checkedBoxes = getCheckedBoxes("mycheckboxes"); 
+1

Tôi hỗ trợ giải pháp này. 1 cho tôi. Đó là JavaScript đơn giản và nó hoạt động. –

+2

+1 để trở thành một giải pháp JS thuần túy –

+0

cách làm cho nó như một phương thức util JS sẽ trả về mảng giá trị được kiểm tra và null nếu không có ai được kiểm tra? –

45

Trong IE9 +, Chrome hoặc Firefox bạn có thể làm:

var checkedBoxes = document.querySelectorAll('input[name=mycheckboxes]:checked'); 
Các vấn đề liên quan