<input>は<form>なしで整形式ですか?


225

に含まれてい<input>なくても有効です<form>か?

ページ内のいくつかのフィールドをマークアップするプロセスがあり、期待どおりにマークアップされていない入力フィールドを持つページを見つけました。
少し時間がかかりましたが、フォーム要素を取得してからフィールドを取得するプロセスが原因で、フォームがないためにこれらが見落とされていました。


@アドリアーノ-私の考えは正確に。ただそれを実行して見てください!
Gabriel Hurley

1
確かにw3cバリデーター、私は本当にいい理由を説明しました。
Greg Domjan、2010

また、htmlの一部のバージョンでは有効である可能性がありますが、他のバージョンでは無効である可能性があります。その場合、バリデーターは標準を閲覧するよりもはるかに高速です。
Adriano Varoli Piazza

回答:


200

<input><form> 有効な表示がない場合、はい(少なくともhtml 4.01の場合は17.2.1の終わり近くを見てください):

コントロールの作成に使用される要素は、通常、FORM要素内に表示されますが、ユーザーインターフェイスの構築に使用される場合、FORM要素宣言の外部に表示される場合もあります。これについては、組み込みイベントのセクションで説明します。フォーム外のコントロールは成功したコントロールにはならないことに注意してください。


7
フォームデータをサーバーに送信できるようにする(Ajaxは別として)。
Ludovic Kuty 2013

5
@PhilipSmith私はあなたのコメントがずっと前に書かれたことを知っています。しかし、なぜこれが奇妙であるか無意味だと思いますか?コントロールがサーバーと通信していないのに、なぜフォームを作成したいのですか?
adam-beck 2015年

18
「成功した制御」とは何ですか?
AlikElzin-kilaka 2015

22
フォームが処理のために送信されると、一部のコントロールの名前は現在の値とペアになり、これらのペアはフォームとともに送信されます。名前と値のペアが送信されるコントロールは、成功したコントロールと呼ばれます。 w3c
SantiBailors

3
@ adam-beckたとえば、特定のAngularJS Webサイトは入力を処理し、データを操作して、それをAPIに送信します。フォームのHTMLテンプレートは、フォームタグなしで作成でき、サーバーと正常に通信します。
sr9yar


6

より最新の仕様への参照:

HTML 5.2-W3C勧告(2017年12月14日)

フォームに関連付けられた要素は<form>、要素のフォーム所有者と呼ばれる要素との関係を持つことができます。フォームに関連付けられた要素が要素に関連付けられていない場合<form>、そのフォームの所有者はnullと呼ばれます。


4

MDNによると、次のことが可能です。

要素の外でフォームウィジェットを使用することは常に可能ですが、使用する場合、そのフォームウィジェットはどのフォームとも関係ありません。そのようなウィジェットはフォームの外で使用できますが、それ自体は何もしないので、そのようなウィジェットには特別な計画が必要です。JavaScriptでそれらの動作をカスタマイズする必要があります。

HTML5では、HTMLフォーム要素にform属性が導入されています。フォームタグで囲まれていなくても、要素をフォームに明示的にバインドできるはずです。残念ながら、当面は、ブラウザ間でのこの機能の実装は、この機能に依存するのにまだ十分ではありません。


2

この質問はかなり古いことを知っていますが、フォームタグなしで多くの複雑なデータ入力ページを構築できました。多くの人は「標準」とは考えていませんが、なしで入力を使用することは不適切ではありません<form>。私のプロジェクトは、ページの動作を完全に制御する必要があり、デフォルトのフォーム動作が邪魔になるインスタンスでした。(JSを使用して)ページおよびフィールドレベルの検証を実行し、Ajax呼び出しなどでデータを「送信」することができました。実際、これが最近の私の推奨方法です。

多くのJSが必要ですが、それほど難しくはなく、再利用可能なコードとして簡単に実行できます。

また、ログインページなどの入力を含むフォームを使用しない場合もあります。

この体験談が誰かのお役に立てば幸いです。


1

はい、フォームがなくても有効な入力を行うことができます。


14
まあ、あなたは「はい」の背後にいくつかの証拠を追加することができます。または、これが当てはまるHTMLのバージョンの明確化。それでも、私はあなたをダウンモッド化しなかったでしょう。
Adriano Varoli Piazza

9
それであなたの理論的根拠で、ユーザーがW3に行って自分でそれを調べることができるのであれば、なぜSOでさえあるのでしょうか?私もあなたに反対票を投じなかったでしょうが、説明と正解がここで最も役立つので、明確かつ簡潔な方法でより多くの説明を持つ人が賛成票を得ることに同意する必要があります。
Mattygabe、2011年

-10

はい、使用します

document.getElementById('your_input_id').validity.valid

フィールドの有効性を動的にチェックします。


31
これはマークアップの有効性とは何の関係もありませんが、代わりに制約検証APIのためのものです。この回答が8票を獲得する方法は私を超えています。
user247702
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.