Тег формы не будет содержать элементы внутри таблицы

У меня возникла любопытная проблема; У меня есть форма внутри <tr>, однако форма отказывается обертывать в нее любые теги. Я сделал быстрый JSFiddle здесь, чтобы поиграть с ним. Firebug сообщает, что форма ничего не обертывает:

enter image description here

Элемент <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>

Как видно, form содержит две tr в письменной разметке. Я читаю здесь, что это неверно, поэтому мой вопрос можно создать форму, содержащую два или более tr, и произвольное количество других элементов внутри таблица? В таблице есть другие строки в ней, не связанные с формой, поэтому размещение <form> вокруг всей таблицы бесполезно, хотя вид, поскольку другие строки не будут иметь никаких входов для формы (POST запрос), я полагаю, что form можно было бы разместить вокруг всей таблицы.

Это лучшее решение; обертка всего стола или работающее исправление для простого включения необходимых строк в тег form? Я знаю, что я мог бы поставить table внутри td > form, но тогда ширина столбца не будет одинаковой во вложенной таблице, поэтому я пришел, чтобы задать этот вопрос.

Ответ 1

Вы не можете прервать структуру <table> с любыми тегами, кроме <thead>, <tfoot>, <tbody>, <tr>, <th> или <td>. Вы создаете теги, которые должны быть заключены между двумя <td> или весь ваш <table> должен быть помещен в тег <form>.

<table>
    <tr>
        <td>
            <form>
            ...form data...
            </form>
        </td>
    </tr>
</table>

.. или..

<form>
    <table>
    ...
    </table>
</form>

Ответ 2

вы можете поместить форму внутри td в основном, так что вы можете поместить эти 2 строки в новую таблицу, которую вы создаете внутри td
как...

<table><tr><td><form><table><tr>...</tr><tr>...</tr></table></form></td></tr><tr>...</tr><tr>...</tr></table>

Ответ 3

Тег <form> можно разместить только внутри элемента <td> или вне <table> в этом случае.

Если бы я был вами, я бы просто положил <form> на всю таблицу, так как вы сказали, что в нем не будет никаких других форм.

Или вы можете заменить <table> полностью на <div> вместо этого, используя display: table; или display: table-cell;.