前提
FormDataを使ってフォームの値を取得し、確認画面に表示することはできました。
質問
チェックボックスの箇所がチェックした数だけ表示されているので、
「Q3: B, C」のように1行で表示したい。
追記
ソースコードの問題点は["Q3",["B","C"]]とできていないことです。
そもそも、サブミットしてもQ3しか有効にならず、nameの付け方等の構成の見直しが必要です。
現在の確認画面
Q1: hoge
Q2: A
Q3: B
Q3: C
HTML
1<!DOCTYPE html> 2<html lang="ja"> 3 4<head> 5 <meta charset="UTF-8"> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 <title>Document</title> 8</head> 9 10<body> 11 <h3>Document</h3> 12 <div id="work"> 13 <p>入力画面</p> 14 <form id="form" name="myForm"> 15 <p class="text">Q1.TEXT: <input type="text" name="Q1" value="hoge" /></p> 16 <p class="radio">Q2.RADIO: 17 <input type="radio" name="Q2" value="A" checked />A 18 <input type="radio" name="Q2" value="B" />B</p> 19 <p class="radio">Q3.CHECKBOX: 20 <input type="checkbox" name="Q3" value="A" />A 21 <input type="checkbox" name="Q3" value="B" checked />B 22 <input type="checkbox" name="Q3" value="C" checked />C</p> 23 <input id="button" type="button" value="確認" /> 24 </form> 25 </div> 26 27 <script> 28 // 確認ボタンが押されたら確認画面の表示 29 document.getElementById("button").addEventListener("click", function () { 30 const workArea = document.getElementById("work"); 31 const myForm = document.getElementById('form'); 32 const formData = new FormData(myForm); 33 34 let formArray = []; 35 for (let item of formData) { 36 formArray.push(`<p>${item[0]}: ${item[1]}</p>`); 37 } 38 const html = formArray.join(""); 39 40 workArea.innerHTML = ` 41 <p>確認画面</p> 42 ${html} 43 `; 44 }); 45 </script> 46</body> 47 48</html>
回答2件
あなたの回答
tips
プレビュー