【javascript】formData フォームの内容をjavascriptで制御する

FormData とは?
FormData を使うとフォームの内容をキー(key):値(value)として使うことができます。
set() や append() などのメソッドを使って、FormData オブジェクトの内容を追加することもできます。
FormData を POST送信し、データのやり取りを行うことができます。
formDataの中身を確認する
HTML
<form id="form">
<span>名前 : </span><input type="text" name="name" id="name" /><br />
<span>電話番号 : </span><input type="tel" name="tel" id="tel" /><br />
<span>メールアドレス : </span
><input type="email" name="email" id="email" /><br />
</form>
javascript
6行目 : new 演算子 フォームの内容をformDataへ
8行目 : entries()を使って、formDataの中を確認
const form = document.getElementById("form"); // フォーム
const submit = document.getElementById("submit"); // 送信ボタン
const result = document.querySelector(".result"); // 結果を表示させる要素
submit.addEventListener("click", () => {
const formData = new FormData(form); // new演算子でフォームの内容をformDataへ
for (let value of formData.entries()) {
result.innerHTML += value[0] + " : " + value[1] + "<br>";
}
});
formDataに追加する
formDataには、 set() と append() メソッドが用意されており、 formDataに内容を追加することができます。
formを使わなくても、 set() または、 append()で、formDataを作成することもできます。
set() と append() の違い
set()
set()は重複しているものを上書きします。
const formData = new FormData(form);
formData.set("name", "Takahashi");
formData.set("tel", "090-1234-5678");
formData.set("tel", "080-9876-5432");
formData.set("email", "takahashi@xxxxx.com");
for (let value of formData.entries()) {
console.log(value[0] + " : " + value[1]);
}
結果
最初のtelは上書きされ、最後のtelが表示されます。

append()
append()は重複しているものを上書きしません。
const formData = new FormData(form);
formData.append("name", "Takahashi");
formData.append("tel", "090-1234-5678");
formData.append("tel", "080-9876-5432");
formData.append("email", "takahashi@xxxxx.com");
for (let value of formData.entries()) {
console.log(value[0] + " : " + value[1]);
}

次回、formDataをasync aweitで POST送信し、pythonで処理する方法について説明したいと思います。
参考

まとめ
- FormData を使うとフォームの内容をキー(key):値(value)として使うことができる。
- set()、またはappend()を使って、formDataの追加、作成ができる。
- set()は重複しているものは上書きされる。
こんな記事も読まれています。
-
【HTML】【CSS】【javascript】電卓の作り方
電卓のソースコードを2つ紹介します。javascriptはわずか数行で書けます。
-
【JacvaScript】【CSS】たった4行のJavaScriptでできるハンバーガーメニューの作り方
たった4行のJavaScriptで作るハンバーガーメニューの作り方について紹介します。✖をつくるには、transform-originがポイントです。
- リンク
-
波紋エフェクトを表現するjqueryのripples-min.jsの使い方
jqueryのripples-min.jsを使うと簡単に水面の波紋を表現できます。波紋の広がりの速度、波紋の大きさ、波紋のブレの値を変えていろいろ表現させると面白いです。
-
【Javascript】querySelectorAllで要素を取得し、クリックしたら、クラスを追加したり、削除したりする方法。
JavascriptのquerySelectorAllで要素を取得し、クリックしたら、クラスを追加したり、削除したりする方法について解説します。querySelectorと同じように書いてしまうとエラーがでます。forEachを使うとすべてに適用できます。
- リンク
-
要素の高さを取得する方法。getBoundingClientRectとは?window.innerHeightとは?window.pageYOffsetとは?
要素の高さを取得する方法について解説します。getBoundingClientRect、window.innerHeight、window.pageYOffsetについて理解し、要素がいつ画面に現れるかを把握できるようにしましょう。
-
Javascriptを使ったページネーションの実装
トップページの記事が増えてきたので、何とかページネーションで最新の記事だけを表示できないかと思っていたら、いい記事を発見しました。カスタマイズして実装することができました。
- リンク
-
【Javascript】マウスの指す(X, Y)座標とドラッグ & ドロップを理解する
マウスの指す(X, Y)座標とドラッグ & ドロップについて解説します。mousedown, mouseover, mousemove, mouseupを使います。
-
【javascript】連想配列をテーブルできれいに表示する方法
javascript(Object.entries)を使って、連想配列の中身をテーブルできれいに表示する方法について紹介します。
- リンク