2011-12-19 25 views
32

Mam zestaw pól wejściowych o tej samej nazwie i chciałbym ustalić, które pola wyboru zostały sprawdzone przy użyciu javascript, w jaki sposób można to osiągnąć? wiem tylko jak uzyskać wszystkie pola w następujący sposób:Jak uzyskać wszystkie zaznaczone pola wyboru

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

tak są już jednak wszystkie z nich, rozwiązanie jest z JQuery i muszę zwykły roztwór JS, że jest różnica. –

+0

Zobacz też http://stackoverflow.com/questions/1543017/javascript-check-all-checkboxes-in-a-table-asp-net – Lijo

Odpowiedz

68

Prosty do pętli, która testuje właściwość checked i dołącza sprawdzonych te do oddzielnej tablicy. Stamtąd możesz w razie potrzeby przetworzyć tablicę z rozszerzeniem checkboxesChecked.

// 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

Popieram to rozwiązanie. +1 dla mnie. Jest to zwykły JavaScript i działa. –

+2

+1 za bycie czystym JS rozwiązaniem –

+0

jak zrobić to jako metodę JS util, która zwróci tablicę sprawdzanej wartości, i null, jeśli nikt nie jest sprawdzany? –

45

W IE9 +, Chrome lub Firefox można zrobić:

var checkedBoxes = document.querySelectorAll('input[name=mycheckboxes]:checked'); 
Powiązane problemy