フォームで本当にアクションが必要ですか?
-
29-10-2019 - |
質問
ここでは必須と書かれています
http://www.w3schools.com/tags/att_form_action.asp
しかし、アクション属性を指定しなくてもフォームが送信され、フォームは現在のページに送信されます。これはまさに私が望むものです。
解決
要件は標準のみによるものです。標準に従わずに、ページ上でやりたいことを何でもすることは完全に可能です。そうすると、物事が正しく表示または機能しない可能性がありますが、おそらくそうなります。目標はそれらをフォローすることであり、それらをフォローすると、ページが常に機能するという考え方です。何も心配する必要はありません。
はい。HTML4でアクション属性を使用するには、フォームが必須です。設定されていない場合、ブラウザは空の文字列を提供するのと同じ方法を使用する可能性があります。完全に有効なHTML4であり、標準に準拠し、まったく同じ結果を達成するaction=""
を設定する必要があります。
HTML5では、送信ボタン自体に実際にアクションを指定できます。存在しない場合はフォームのアクションを使用し、設定されていない場合はデフォルトで空の文字列になります(HTML5ではアクションを空の文字列に明示的に設定できないことに注意してください)。
他のヒント
アクションを空白のままにしておくと、仕様に従って、必要な動作を得ることができます(相対的なものであるため、空白は現在のページを意味します): ジェネラコディセタグプレ
bazmegakapaが述べているように、HTML5仕様 action
属性を必要としないようです:
actionおよびformactionコンテンツ属性(指定されている場合)には、スペースで囲まれている可能性のある有効な空でないURLである値が必要です。[強調を追加]
興味深いことに、これはHTML5では、
action
が無効であることを意味しますが、アクションのないフォームが機能する必要があるかどうかは明確ではありません(現在のページに送信してください)。
技術的にはHTML4仕様に違反していますが、アクションが指定されていない場合、すべてのブラウザが応答の発信者にポストバックします。それに頼るのは賢明な考えではないことに同意しますが、それは機能します。
編集:この質問はHTML 5としてタグ付けされていることが私に指摘されているので: HTML 5では、アクション属性が不要になったものとしてリストされています: http://www.w3schools.com/html5 / att_form_action.asp は、HTML5の仕様に準拠しています。
//スレッド復活アラート
アニムソンの答えを拡張するには...
すべてのボタンformaction
およびフォームaction
属性が評価された後、「アクション」が「空の文字列」として評価される場合は、HTML5.2仕様セクション 4.10.21.3 ポイント8の状態:
actionが空の文字列の場合、actionをドキュメントのURLとします。 フォームドキュメント。
フォームの送信に関しては、あなたが望んでいたことです。