【问题标题】:form inside table表格内表格
【发布时间】:2012-06-21 12:50:11
【问题描述】:

为什么会这样?

<table>
  <form>
    <tr><td>something something</td/>
  </form>
</table>

我说的是表格标签中表单标签的位置。

【问题讨论】:

  • 您的帖子缺少一个关闭的 ` 标签。可以修一下吗?

标签: forms


【解决方案1】:

来自DTD

<!ELEMENT TABLE - -
     (CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+)>
<!ELEMENT CAPTION  - - (%inline;)*     -- table caption -->
<!ELEMENT THEAD    - O (TR)+           -- table header -->
<!ELEMENT TFOOT    - O (TR)+           -- table footer -->
<!ELEMENT TBODY    O O (TR)+           -- table body -->
<!ELEMENT COLGROUP - O (COL)*          -- table column group -->
<!ELEMENT COL      - O EMPTY           -- table column -->
<!ELEMENT TR       - O (TH|TD)+        -- table row -->
<!ELEMENT (TH|TD)  - O (%flow;)*       -- table header cell, table data cell-->

这些是您可以在 table 元素中包含的唯一元素(在本例中是 HTML 4,但您检查了相同类型的文档是否有其他版本,它并没有太大变化)。


另一方面,form 元素可以包含任何其他块级元素(其他形式除外):

<!ELEMENT FORM - - (%block;|SCRIPT)+ -(FORM) -- interactive form -->

td 元素可以包含任何“流”元素(如第一个代码块所示),“流”包括块级元素:

<!ENTITY % flow "%block; | %inline;">

因此,您可以将&lt;form&gt; 标签放在整个表格周围或一个表格单元格内。

【讨论】:

    【解决方案2】:

    只有元素 CAPTION、COL、COLGROUP、THEAD、TFOOT 和 TBODY 允许作为 TABLE 元素的子元素。请参阅 HTML 规范中的 The TABLE element

    【讨论】:

      【解决方案3】:

      因为根据标准,您只能将&lt;form&gt; 标签放在&lt;td&gt; 内部或&lt;table&gt; 外部。

      【讨论】:

        猜你喜欢
        • 2011-08-23
        • 1970-01-01
        相关资源
        最近更新 更多