前提
こんにちは。いつもお世話になっております。
現在web開発の勉強をしている学生です。
簡単なwebページの作成を行っているのですが、自分の書いたコードをなかなかコンパクトにできず気持ち悪いです。
可能な限り冗長なコードをなくしたつもりですが、まだ改善できる点などありますでしょうか。
厳しい意見もためになりますので、よろしくお願いいたします。
実現したいこと
冗長なコードの削除
発生している問題・エラーメッセージ
特になし
該当のソースコード
JavaScript
1window.addEventListener('DOMContentLoaded', function(){ 2 const Qreform = document.getElementById('Qreform'); 3 Qreform.addEventListener('input', function(event){ 4 if (event.target.name == "country") { 5 // プルダウンの処理 6 var show1 = document.getElementById('disp1'); 7 show1.innerText = event.target.value; 8 } else if (event.target.name == "schedule") { 9 // ラジオボタンの処理 10 var show2 = document.getElementById('disp2'); 11 show2.innerText = event.target.value; 12 } else if (event.target.name == "place") { 13 // チェックボックスの処理 14 let checked = document.querySelectorAll('input[name="place"]:checked'); 15 let out = []; 16 checked.forEach((chk) => { 17 out.push(chk.value); 18 }); 19 var show3 = document.getElementById('disp3'); 20 show3.innerText = out; 21 } 22 else if (event.target.name == "budget") { 23 let text = document.querySelectorAll('input[name="budget"]'); 24 let out = []; 25 text.forEach((txt) => { 26 out.push(txt.value); 27 }); 28 var show4 = document.getElementById('disp4'); 29 show4.innerText = out + "円"; 30 } 31 else{ 32 } 33 }); 34}); 35
html
1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <title>questionnaire</title> 5 <link rel="stylesheet" type="text/css" href="22331787_Q1.css" /> 6 <script type="text/javascript" src="./22331787.js"></script> 7</head> 8<body> 9 <form id="Qreform"> 10 <table> 11 <caption>研修先希望調査 </caption> 12 <tr> 13 <th> 派遣先</th> 14 <td> 15 <select name="country" > 16 <option value="台湾" />台湾 17 <option value="シンガポール" />シンガポール 18 <option value="フィリピン" />フィリピン 19 </select> 20 </td> 21 <td id="disp1"></td> 22 </tr> 23 <tr> 24 <th>日程</th> 25 <td> 26 <label> 27 <input type="radio" name="schedule" value="3月" id="r"/>3月 28 </label> 29 <label> 30 <input type="radio" name="schedule" value="8月" id="r"/>8月 31 </label> 32 <label> 33 <input type="radio" name="schedule" value="12月" id="r"/>12月 34 </label> 35 </td> 36 <td id="disp2"></td> 37 </tr> 38 <tr> 39 <th>宿泊施設</th> 40 <td> 41 <input type="checkbox" name="place" value="A-HOTEL" id="c1"/> 42 <label for="c1" class="l1">A-HOTEL</label> 43 <input type="checkbox" name="place" value="B-HOTEL" id="c2"/> 44 <label for="c2" class="l1">B-HOTEL</label> 45 <input type="checkbox" name="place" value="C-RESORT" id="c3"/> 46 <label for="c3" class="l1">C-RESORT</label> 47 </td> 48 <td id="disp3"></td> 49 </tr> 50 <tr> 51 <th>予算</th> 52 <td> 53 <input type="text" name="budget">円 54 </td> 55 <td id="disp4"></td> 56 </tr> 57 <tr> 58 <td colspan="3" id="tail"> 59 <input type="submit" name="sendbutton" value="送信" id="button" /> 60 </td> 61 </tr> 62 </table> 63 </form> 64 65</body> 66</html> 67
試したこと
以前の質問で教えて頂いたこと(ループ処理)などを実装。
補足情報(FW/ツールのバージョンなど)
HTML5
Atom

回答3件
あなたの回答
tips
プレビュー