From e7558a60eb9de82f984b2f30df55fc6a8b48ae11 Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Mon, 19 Jul 2021 01:08:24 +0900 Subject: Web/API/FormDataEvent を新規翻訳 (#1489) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 2021/07/11 時点の英語版に基づき新規翻訳 --- .../api/htmlformelement/formdata_event/index.html | 102 +++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 files/ja/web/api/htmlformelement/formdata_event/index.html (limited to 'files/ja/web/api/htmlformelement/formdata_event') diff --git a/files/ja/web/api/htmlformelement/formdata_event/index.html b/files/ja/web/api/htmlformelement/formdata_event/index.html new file mode 100644 index 0000000000..1d63da9889 --- /dev/null +++ b/files/ja/web/api/htmlformelement/formdata_event/index.html @@ -0,0 +1,102 @@ +--- +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 +--- +
{{APIRef}}
+ +

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);
+};
+ +

仕様書

+ +{{Specifications}} + +

ブラウザーの互換性

+ +

{{Compat}}

+ +

関連情報

+ + -- cgit v1.2.3-54-g00ecf