前提・実現したいこと
現在、HTMLのフォームとJavaScriptの配列を使って、チェックボックスにチェックした値を表示するプログラムを組んでいます。
例えばソースコードのようなものです。
表示されている名前・メールアドレスの行のチェックボックスにチェックを入れて登録ボタンを押すと、
チェックした分のメンバーのメールアドレスが、id(今回ならばforTo)で指定した要素の内側に、
HTML形式でまとめて表示されるようにしました。
しかし、個々人でなく特定のグループ全員分のメールアドレスをまとめて取得できるようにもしたいと考えており、
個々人の名前・メールアドレスの行の下(コードならintoTbodyを含むscriptタグの下)に、
各「全員」の行とチェックボックスを配置しました。
この「全員」のチェックボックスにチェックを入れて登録ボタンを押すと、
(「〇〇全員」でなく)そのグループのアドレスをまとめてidの要素内に表示するには、
どのようにコードに加筆修正する必要がありますか?
ご存じの方がおりましたら、恐れ入りますが、ご回答お願いします。
尚、このようなデータテーブルを設けて管理することを想定しています。
該当のソースコード
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <script type="text/javascript" src="http://code.jquery.com/jquery-2.2.3.min.js"></script> <title>MailGroupSet</title> </head> <body> <form name="destModal"> <table border="1"> <thead> <tr> <th>選択</th> <th>氏名</th> <th>メールアドレス</th> </tr> </thead> <tbody> <script> function intoTbody(name,mail,group){ document.write( "<tr>" + "<td>" + "<input type='checkbox' name='destMember' value='"+ mail +"'>" + "</td>" + "<td>"+ name +"/グループ:"+ group +"</td>" + "<td>"+ mail +"</td>" + "</tr>" ); } intoTbody("徳川慶喜","tokugawa.yoshinobu@bakuhu.net",0); intoTbody("井伊直弼","e.naosuke@bakuhu.net",0); intoTbody("勝海舟","katsu.kaisyu@bakuhu.net",0); intoTbody("近藤勇","isami.kondo@makoto.com",0); intoTbody("土方歳三","hijikata.toshizo@makoto.com",0); intoTbody("西郷隆盛","saigo.takamori`satsuma.com",1); intoTbody("吉田松陰","yoshida.shoin@chosyu.com",1); intoTbody("桂小五郎","katsura.kogoro@chosyu.com",1); intoTbody("高杉晋作","takasugi.shinsaku@chosyu.com",1); intoTbody("坂本龍馬","sakamoto.ryoma@kameyama.com",2); intoTbody("中岡慎太郎","nakaoka.shintaro@kameyama.com",2); intoTbody("後藤象二郎","goto.shojiro@tosa.com",2); </script> <tr> <td> <input type="checkbox" name="destMember"> </td> <td colspan="2">幕府全員</td> </tr> <tr> <td> <input type="checkbox" name="destMember"> </td> <td colspan="2">薩長全員</td> </tr> <tr> <td> <input type="checkbox" name="destMember"> </td> <td colspan="2">その他全員</td> </tr> </tbody> </table> </form> <button onClick="joinAddress()">登録</button> <p id="forTo"></p> <script> function joinAddress(){ var arr1 = []; var to1 = document.destModal.destMember; for (let i = 0; i < to1.length; i++){ if(to1[i].checked){ //(to1[i].checked === true)と同じ arr1.push("<span class='each"+(i+1)+" eachAdressTx'>" + to1[i].value + "</span>"); } } document.getElementById("forTo").innerHTML = arr1; } </script> </body> </html>
試したこと
ここに問題に対して試したことを記載してください。
各「全員」チェックボックスにはnameかclassを設定しておき、
if文で、そのチェックボックスにチェックがついた状態で登録ボタンが押されれば、
グループごとに設定したclassに該当する人物の行にチェックがついて、
その状態で登録されるのではないか、とも考えました。
(コードの記述方法が分からず、未実装です...)
回答1件
あなたの回答
tips
プレビュー