代码之家  ›  专栏  ›  技术社区  ›  allyourcode

你能用合法的HTML使一个表的一部分属于一个窗体吗?

  •  0
  • allyourcode  · 技术社区  · 15 年前

    我试着在 HTML validator ,但即使我使用“验证HTML片段”选项,它也无法验证:

    <table>
      <form action="foo">
        <tr>
          <td>tables + forms = BOOM</td>
        </tr>
      </form>
    </table>
    

    我想我在这里要做的很清楚,但是验证器似乎告诉我这是不允许的:(。

    使用单独的表不会产生相同的效果,因为列宽最终可能不相同。

    3 回复  |  直到 15 年前
        1
  •  2
  •   user113292 user113292    15 年前

    如你所见, <form> <td> ),或完全封装 <table> the HTML DTDs 所有表元素都禁止将非表元素作为 <表> <tr> .

    也就是说,即使你没有验证,大多数浏览器都会理解你在尝试做什么。

        2
  •  1
  •   ChrisW    15 年前

    here 在每种类型的元素可以包含的列表中。

    表格很繁琐:它们只能包含 caption?, ( col* | colgroup* ), (( thead?, tfoot?, tbody+ ) | ( tr+ ))

    表单是“块内容”,所以你可以把它放在任何内容可以是“块”的地方,也可以放在任何内容可以是“流”的地方,也可以放在表格单元格中:所以你可以把表单放在td中。

        3
  •  1
  •   Chris Fulstow    15 年前

    不幸的是,HTML4指定不能有 <form> 直接在 <table> <td> ,可以试试这个:

    <table>
      <tr>
        <td>
          <form action="foo">
            td + form = SUCCESS!
          </form>
        </td>
      </tr>
    </table>
    

    <th> 只能包含 phrasing elements <表格> 被归类为 flow element