FormData
FormDataは、HTMLフォームのデータを簡単に扱うためのWebAPIのインターフェースです。 主にフォームの内容をサーバーに送信する際に使用されます。
使用例:
// フォーム送信イベントのリスナー
form.addEventListener('submit', function(e) {
e.preventDefault(); // デフォルトの送信を防ぐ
const formData = new FormData(this); // データの取得
console.log(formData.get('username')); // 'username'フィールドの値を取得
// データの追加
formData.append('timestamp', Date.now());
// サーバーへの送信(Fetch APIを使用)
fetch('/submit-url', {
method: 'POST',
body: formData
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
});
この例では、フォームが送信されたときにFormDataオブジェクトを作成し、 データを操作してからサーバーに送信しています。
インタラクティブデモ
デモコンポーネントのコード:
// FormDataデモコンポーネント
const FormDataDemo = () => {
const [result, setResult] = useState('');
const handleSubmit = (e: React.FormEvent<HTMLFormElement>) => {
e.preventDefault();
const formData = new FormData(e.currentTarget);
// タイムスタンプを追加
formData.append('timestamp', new Date().toISOString());
// 結果を表示
let resultHTML = '<h3>FormDataの内容:</h3>';
formData.forEach((value, key) => {
resultHTML += `<p><strong>${key}:</strong> ${value}</p>`;
});
setResult(resultHTML);
// 通常はここでサーバーにデータを送信しますが、
// このデモではコンソールに出力するだけにします
console.log('サーバーに送信されるデータ:', Object.fromEntries(formData));
};
// ...
};