チェックボックス †チェックボックスをList配列で処理するサンプルです。左上のチェックボックスをクリックするとそのチェックボックスによって全選択・全解除します。計算のボタンをクリックするとチェックボックスで選択した項目とその価格(チェックボックスのvalueに設定)をダイアログに表示します。
以下はHTML部分です。チェックボックスのINPUTタグにvalueに価格を設定しています。 <div class="inside"> <form id="fashion" name="fashion"> <table id="shohin_table" border=1><tbody> <tr><th><input type="checkbox" onclick="checkAll();" name="all"></th> <th>項目</th></tr> <tr><td><input type="checkbox" name="clothes" value="1000"></td> <td>ポロシャツ</td></tr> <tr><td><input type="checkbox" name="clothes" value="2000"></td> <td>Tシャツ</td></tr> <tr><td><input type="checkbox" name="clothes" value="3000"></td> <td>カーデガン</td></tr> <tr><td><input type="checkbox" name="clothes" value="4000"></td> <td>セーター</td></tr> <tr><td><input type="checkbox" name="clothes" value="5000"></td> <td>ネルシャツ</td></tr> <tr><td><input type="checkbox" name="clothes" value="6000"></td> <td>パーカー</td></tr> <tr><td><input type="checkbox" name="clothes" value="7000"></td> <td>トレーナー</td></tr> </tbody></table> <BR> <input id="calc" type="button" value="計算" name="calc" onclick="calculate();"> </form> </div> 以下はDOMのgetElementsByNameメソッドでデータを取得するサンプルです。 function checkAll(){ var check_name = "clothes"; var flag = document.getElementsByName("all")[0].checked; var checks = document.getElementsByName(check_name); for(i=0; i<checks.length; i++){ checks[i].checked = flag; } } function calculate(){ var check_name = "clothes"; var text = ""; var checks = document.getElementsByName(check_name); for (var i=0; i < checks.length; i++){ if( checks[i].checked ){ var objTR = checks[i].parentNode.parentNode; text += objTR.cells[1].innerHTML + checks[i].value + "円" + ","; } } if ( text == "" ) { text = 'チェックされていません。'; } else { text = text.substr(0,text.length-1); } alert(text); } 以下はFORMタグfashionよりデータを取得する方法のサンプルです。 isArray = function (vArg) { return !(vArg.length === undefined); } function checkAll(){ var flag = document.fashion.all.checked; var checks = document.fashion.clothes; if ( checks == null ) { alert('No Checkbox'); return false; } else if ( isArray(checks) == false ) { checks.checked = flag; } else { for( var i = 0; i < checks.length; i++){ checks[i].checked = flag; } } } function calculate(){ var text = ""; var objTR; var checks = document.fashion.clothes; if ( checks == null ) { alert('No Checkbox'); return false; } else if ( isArray(checks) == false ) { if( checks.checked ){ objTR = checks.parentNode.parentNode; text = objTR.cells[1].innerHTML + checks.value + "円" + ","; } } else { for( var i = 0; i < checks.length; i++){ if( checks[i].checked ){ var objTR = checks[i].parentNode.parentNode; text += objTR.cells[1].innerHTML + checks[i].value + "円" + ","; } } } if ( text == "" ) { text = 'チェックされていません。'; } else { text = text.substr(0,text.length-1); } alert(text); } 以下はTABLEのID( = shohin_table )からDOMによりチェックボックスを全選択する関数とquerySelectorAllメソッドを使用してチェックされたデータを取得する方法のサンプルです。 function checkAll(){ var flag = document.getElementsByName("all")[0].checked; var shohin_table = document.getElementById("shohin_table"); for ( var i = 1; i < shohin_table.rows.length; i++ ) { var check = shohin_table.rows[i].cells[0].firstChild; check.checked = flag; } } function calculate(){ var text = ""; var objTR; var checks=document.querySelectorAll('#shohin_table input[name=clothes]'); for (var check of checks) { if( check.checked ){ objTR = check.parentNode.parentNode; text += objTR.cells[1].innerHTML + check.value + "円" + ","; } } if ( text == "" ) { text = 'チェックされていません。'; } else { text = text.substr(0,text.length-1); } alert(text); } Last-modified: 2015-12-03 (木) 20:47:08 (3288d)
|