2011-12-19 12 views
32

入力チェックボックスに同じ名前の があり、どのチェックボックスがjavascriptを使ってチェックされているかを確認したいのですが、どのように達成できますか? 私は次のようにすべてのチェックボックスを取得する唯一の方法を知っている:すべてのチェックボックスをチェックする方法

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

はいがすでにあるが、それらのすべてが、解決策は、jQueryを使っている、と私は無地のJSソリューションを必要とし、それは違います。 –

+0

以下もご覧くださいhttp://stackoverflow.com/questions/1543017/javascript-check-all-checkboxes-in-a-table-asp-net – Lijo

答えて

68

checkedプロパティをテストし、別の配列に確認されたものを追加したループのためのシンプルな。そこから、必要に応じてさらにcheckboxesCheckedの配列を処理することができます。

あなたが行うことができますIE9 +、クロムまたはFirefoxで
// 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

私はこのソリューションをサポートしています。 +1。それは普通のJavaScriptであり、動作します。 –

+2

純粋なJSソリューションであるために+1 –

+0

チェックされた値の配列を返すutil JSメソッドとしてどのようにするか、チェックされていない場合はnull? –

45

var checkedBoxes = document.querySelectorAll('input[name=mycheckboxes]:checked'); 
関連する問題