FormDataEvent

Baseline 已廣泛支援

此功能已成熟,並可在多種裝置和瀏覽器版本上執行。自 2021 年 9 月起,所有瀏覽器均已支援此功能。

FormDataEvent 介面代表一個 formdata 事件——當表單資料的條目列表構建完成後,會在一個 HTMLFormElement 物件上觸發此類事件。這會在表單提交時發生,但也可以由 FormData() 建構函式的呼叫觸發。

這使得在 formdata 事件觸發時可以快速獲取一個 FormData 物件,而無需在你希望透過 fetch() 等方法提交表單資料時自行組裝(請參閱 使用 FormData 物件)。

Event FormDataEvent

建構函式

FormDataEvent()

建立一個新的 FormDataEvent 物件例項。

例項屬性

繼承自其父介面 Event 的屬性。

FormDataEvent.formData

包含事件觸發時代表表單資料的 FormData 物件。

例項方法

繼承自其父介面 Event 的方法。

示例

js
// grab reference to form

const formElem = document.querySelector("form");

// submit handler

formElem.addEventListener("submit", (e) => {
  // on form submission, prevent default
  e.preventDefault();

  console.log(form.querySelector('input[name="field1"]')); // FOO
  console.log(form.querySelector('input[name="field2"]')); // BAR

  // construct a FormData object, which fires the formdata event
  const formData = new FormData(formElem);
  // formdata gets modified by the formdata event
  console.log(formData.get("field1")); // foo
  console.log(formData.get("field2")); // bar
});

// formdata handler to retrieve data

formElem.addEventListener("formdata", (e) => {
  console.log("formdata fired");

  // modifies the form data
  const formData = e.formData;
  formData.set("field1", formData.get("field1").toLowerCase());
  formData.set("field2", formData.get("field2").toLowerCase());
});

規範

規範
HTML
# the-formdataevent-interface

瀏覽器相容性

另見