表单标记不会将元素括在表中

Boj*_*les 11 html forms html-table semantics

我遇到了一个奇怪的问题; 我在里面有一个表单<tr>,但是表单拒绝在其中包装任何标签.我在这里做了一个快速的JSFiddle 来玩.Firebug报告表单没有包装任何东西:

在此输入图像描述

<form>元素是灰色的,而不是包装什么.此测试的HTML如下所示

<table>
    <form>
        <tr>
            <td>Input</td>
            <td>Another input</td>
        </tr>
        <tr>
            <td colspan="4"><span>Other stuff</span></td>
        </tr>
    </form>

    <tr>
        <td>
            Rows not affected by the form
        </td>
    </tr>
    <tr>
        <td>
            Rows not affected by the form
        </td>
    </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

可以看出,在写入的标记中form保持两个trs.我在这里读到这是无效的,所以我的问题是我可以在表格中创建一个包含两个或更多个trs和任意数量的其他元素的表单吗?该表中的其他行与表单没有关联,因此<form>对整个表进行舍入是没有用的,虽然看到其他行没有表单的任何输入(POST请求),我想form可以放一个整个桌子.

哪个是更好的解决方案; 整表包装,或者只是将所需行封装在form标签中的工作修复?我知道我可以放入一个table内部td > form,但是嵌套表中的列宽度不一样,这就是为什么我来问这个问题.

Mic*_*yen 18

你不能中断<table>与除任何标签结构<thead>,<tfoot>,<tbody>,<tr>,<th>,或<td>.您需要将表单标记封装在两个<td>或整个<table>需求之间,以便放置在<form>标记内.

<table>
    <tr>
        <td>
            <form>
            ...form data...
            </form>
        </td>
    </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

..要么..

<form>
    <table>
    ...
    </table>
</form>
Run Code Online (Sandbox Code Playgroud)