前提・実現したいこと
チェックボックスでチェックされた数をタイプ別でカウントされるコードがあります。
このカウントされた数字をタイプ別で比較し、数が多い方を、出力させたいです。
ご教授のほどよろしくお願いします。
試したこと
カウントされた数字をpushメソッドで、配列にいれ、数字を比較できるかなと考えたのですがダメでした。
↓これですと、エラーが出ました。
function decision(count) { Math.max.apply(null, count); }
該当のソースコード
javascript
1function countCheckedCheckbox(elements, sumElement, logname) { 2 let count = 0; 3 for (let i = 0; i < elements.length; i++){ 4 if (elements[i].checked){ 5 count = count + 1; 6 } 7 } 8 9 console.log(`${logname}の合計は${count}です`); 10 11 var arr = new Array(); 12 arr.push(count) 13 decision(count) 14 sumElement.value = count; 15 16} 17 18function checkbox() { 19 20 const checksA = document.getElementsByClassName("checks_one"); 21 const checksB = document.getElementsByClassName("checks_two"); 22 const checksC = document.getElementsByClassName("checks_three"); 23 const checksD = document.getElementsByClassName("checks_four"); 24 25 26 const btn = document.getElementById("btn") 27 btn.addEventListener("click", () => { 28 29 const countSumA = document.getElementById("sum_one") 30 const countSumB = document.getElementById("sum_two") 31 const countSumC = document.getElementById("sum_three") 32 const countSumD = document.getElementById("sum_four") 33 34 35 countCheckedCheckbox(checksA, countSumA, "タイプA"); 36 countCheckedCheckbox(checksB, countSumB, "タイプB"); 37 countCheckedCheckbox(checksC, countSumC, "タイプC"); 38 countCheckedCheckbox(checksD, countSumD, "タイプD"); 39 40 }) 41} 42window.addEventListener("load",checkbox)
###追記
HTMLの記述になります。テキストフィールドにカウントされた値が入る形になります。
HTML
1 <div class="sum-btn"> 2 <button id="btn" type="button">診断する</button> 3 </div> 4 5 6 7 <div class="result"> 8 <span class="type_name">Aタイプ</span><input type="text", class="count_num", id="sum_one" >ポイントです! 9 </div> 10 <div class="result"> 11 <span class="type_name">Bタイプ</span><input type="text", class="count_num", id="sum_two" >ポイントです! 12 </div> 13 <div class="result"> 14 <span class="type_name">Cタイプ</span><input type="text", class="count_num", id="sum_three" >ポイントです! 15 </div> 16 <div class="result"> 17 <span class="type_name">Dタイプ</span><input type="text", class="count_num", id="sum_four" >ポイントです! 18 </div>
HTML部分の記載もお願いします。
タイプ別というのが意味がよくわかりませんが
クラスごとにチェックされた数を比較して、最大値をとればいいのですか?
その際一緒に任意の「タイプ」を表示?
そうなるとチェック数が最多のものが複数ある場合どうするのでしょう?
kuma_kuma様
HTMLを追加で記述しました。よろしくお願いします。
yambejp様
チェックボックスは数十個あり、そのチェックされたボックスによって、
タイプAは3個チェックされている、タイプBは5つチェックされているというように、振り分けられ、それを比較し、あなたのタイプはタイプBです。 という結果を出力させいたです。
複数の場合は、あなたのタイプは、タイプBとCです!という形で、出力できればなと考えています。
よろしくお願いいたします。
HTMLの追記拝見しましたが
所定のクラス名がついたチェックボックスが見当たりません
回答1件
あなたの回答
tips
プレビュー