に含まれてい<input>
なくても有効です<form>
か?
ページ内のいくつかのフィールドをマークアップするプロセスがあり、期待どおりにマークアップされていない入力フィールドを持つページを見つけました。
少し時間がかかりましたが、フォーム要素を取得してからフィールドを取得するプロセスが原因で、フォームがないためにこれらが見落とされていました。
に含まれてい<input>
なくても有効です<form>
か?
ページ内のいくつかのフィールドをマークアップするプロセスがあり、期待どおりにマークアップされていない入力フィールドを持つページを見つけました。
少し時間がかかりましたが、フォーム要素を取得してからフィールドを取得するプロセスが原因で、フォームがないためにこれらが見落とされていました。
回答:
<input>
<form>
有効な表示がない場合、はい(少なくともhtml 4.01の場合は17.2.1の終わり近くを見てください):
コントロールの作成に使用される要素は、通常、FORM要素内に表示されますが、ユーザーインターフェイスの構築に使用される場合、FORM要素宣言の外部に表示される場合もあります。これについては、組み込みイベントのセクションで説明します。フォーム外のコントロールは成功したコントロールにはならないことに注意してください。
W3Cバリデーターで以下を確認したところ、有効であることを確認しました。
<!DOCTYPE html>
<html>
<head>
<title>test</title>
</head>
<body>
<input type='text' />
</body>
</html>
より最新の仕様への参照:
フォームに関連付けられた要素は
<form>
、要素のフォーム所有者と呼ばれる要素との関係を持つことができます。フォームに関連付けられた要素が要素に関連付けられていない場合<form>
、そのフォームの所有者はnullと呼ばれます。
要素の外でフォームウィジェットを使用することは常に可能ですが、使用する場合、そのフォームウィジェットはどのフォームとも関係ありません。そのようなウィジェットはフォームの外で使用できますが、それ自体は何もしないので、そのようなウィジェットには特別な計画が必要です。JavaScriptでそれらの動作をカスタマイズする必要があります。
HTML5では、HTMLフォーム要素にform属性が導入されています。フォームタグで囲まれていなくても、要素をフォームに明示的にバインドできるはずです。残念ながら、当面は、ブラウザ間でのこの機能の実装は、この機能に依存するのにまだ十分ではありません。
この質問はかなり古いことを知っていますが、フォームタグなしで多くの複雑なデータ入力ページを構築できました。多くの人は「標準」とは考えていませんが、なしで入力を使用することは不適切ではありません<form>
。私のプロジェクトは、ページの動作を完全に制御する必要があり、デフォルトのフォーム動作が邪魔になるインスタンスでした。(JSを使用して)ページおよびフィールドレベルの検証を実行し、Ajax呼び出しなどでデータを「送信」することができました。実際、これが最近の私の推奨方法です。
多くのJSが必要ですが、それほど難しくはなく、再利用可能なコードとして簡単に実行できます。
また、ログインページなどの入力を含むフォームを使用しない場合もあります。
この体験談が誰かのお役に立てば幸いです。
はい、フォームがなくても有効な入力を行うことができます。
はい、使用します
document.getElementById('your_input_id').validity.valid
フィールドの有効性を動的にチェックします。