--- title: 'HTMLFormElement: formdata イベント' slug: Web/API/HTMLFormElement/formdata_event tags: - Event - Forms - Reference - formevent browser-compat: api.HTMLFormElement.formdata_event translation_of: Web/API/HTMLFormElement/formdata_event ---
formdata イベントは、フォームのデータを表すエントリーリストが構築された後に発行されます。このイベントは、フォームが送信されたときに発行されますが、 {{domxref("FormData.FormData", "FormData()")}} コンストラクターが呼び出されたときにも発行されます。
| バブリング | なし |
|---|---|
| キャンセル | 不可 |
| インターフェイス | {{DOMxRef("FormDataEvent")}} |
| イベントハンドラープロパティ | {{domxref("GlobalEventHandlers.onformdata")}} |
// フォームの参照を得る
const formElem = document.querySelector('form');
// submit ハンドラー
formElem.addEventListener('submit', (e) => {
// フォームの送信時、既定の動作を抑止
e.preventDefault();
// FormData オブジェクトを構築し、 formdata イベントが発行される
new FormData(formElem);
});
// データを受け取るための formdata ハンドラー
formElem.addEventListener('formdata', (e) => {
console.log('formdata fired');
// イベントオブジェクトからフォームデータを取得する
let data = e.formData;
for (var value of data.values()) {
console.log(value);
}
// XHR でデータを送信
var request = new XMLHttpRequest();
request.open("POST", "/formHandler");
request.send(data);
});
onformdata 版はこのようになります。
formElem.onformdata = (e) => {
console.log('formdata fired');
// イベントオブジェクトからフォームデータを取得する
let data = e.formData;
for (var value of data.values()) {
console.log(value);
}
// XHR でデータを送信
var request = new XMLHttpRequest();
request.open("POST", "/formHandler");
request.send(data);
};
{{Compat}}