为什么输入标签不允许直接在表单标签中?

Str*_*ior 9 html w3c

我刚刚在http://w3fools.com/#html_forms上阅读了以下内容:

<input><form>HTML5之前,非块级元素(例如)在标记内部无效.

我从来没有听说过这些内容,我看到的每个基本HTML教程似乎都很好,将输入标签直接放在表单标签中.所以我的问题有三个部分:

  • 以上陈述是否合法?
  • 为什么会这样?(它只是一个疏忽,还是HTML规范的创建者试图通过创建此规则来防止特定问题?)
  • 使用输入构建表单的推荐方法是什么?(我们是否应该直接在表单标记内创建div或表?)

Ano*_*mie 9

这是标准的迂腐.

  • 就标准而言,该语句是合法的:在HTML 4.01中,定义<form>指定它可能只包含块元素或<script>.至于世界上每个浏览器允许的内容,都可以.
  • 我只能猜测他们认为<form>根本不是布局标签,他们希望所有内联元素都包含在一个块元素中.
  • 是的,你应该放置<div>,<table>,<p>,或其他一些表象块里面的元素<form>.


小智 5

以上陈述属实.在HTML中,<input>标记不是<form>标记的有效元素.为了进行验证,您需要将<input>标记与<fieldset>或<div>括起来.以下说明.

<form action="/" method="post">
    <fieldset>
        Field: <input type="text" name="field" />
        <br />
        <input type="submit" value="Submit" />
    </fieldset>
</form>
Run Code Online (Sandbox Code Playgroud)