action属性
属性名 | バージョン | 属性値 | 既定値 | 備考 |
---|---|---|---|---|
action | 3.2, 4.0, X1.0, X1.1 | %URI; | #REQUIRED | server-side form handler |
この属性を持つ要素 …… form
actionの解説
formの送信先を指定します。フォームが送信されると、ここで指定した URL に送信されます。
この属性は必須で、必ず指定しなければなりません。スクリプトが使用するだけで、内容を送信する必要のないフォームというものもありえますが、その場合でもこの属性は必須です。ちなみに、空の値を指定して action="" とした場合、送信先はフォームの URL (もしくは、base要素で指定された基準 URL) となります。
なお、この属性に HTTP URL 以外の物を指定した場合の動作は未定義とされています。
This attribute specifies a form processing agent. User agent behavior for a value other than an HTTP URI is undefined.
HTML4.0 では mailto: スキームの URI を指定してフォーム内容をメール送信する方法が規定されていたのですが、HTML4.01 ではその方法についての記述が削除され、明確に「未定義」とされました。
かなり昔、一部の書物では、ここに mailto: スキームの URI を指定し、かつ enctype="text/plain" を指定するような方法が紹介されていた事があります。しかし、そのような方法には以下のような問題があります。
- 送信側がメール送信の設定をしていないと何も起きません。メールを送るには、最低でも送信先の SMTP サーバと送信者のメールアドレスが必要で、それらの設定が事前に必要です。個人ユーザなら問題ありませんが、公共端末ではどうしようもない場合があります。
- 送信側のメールアドレスが送られてしまいます。
- SMTP に無理矢理 8bit のデータが送られてしまう事があります。SMTP の仕様は 7bit のデータしか想定していませんので、8bit データは不正です。うまく送信できなかったりデータが欠けたりすることもあります。
特に SMTP に 8bit データを流されるとエラーになる事がありますので、最悪の場合はサーバ管理者に迷惑がかかります。mailto: の指定は避けるべきです。
- 「action属性」にコメントを書く