Можно ли вставить форму в HTML-таблицу? - PullRequest
6 голосов
/ 09 мая 2011

Несколько форм в одной таблице, эти формы для различной длины строк, однако это не похоже на работу:

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

Я считаю, что таблица имеет определенную структуру, и это не может быть переплетено сдругие структуры, но есть ли аккуратная работа вокруг этого?

Спасибо.

Ответы [ 6 ]

5 голосов
/ 09 мая 2011

Нет. Согласно этому документу: http://www.w3.org/TR/html401/struct/tables.html#h-11.2.1 таблица может содержать только эти:

TABLE --
     (CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+)>

Но вы можете использовать что-то вроде этого

<div class=table>
  <form>
    <div class=cell>...</div>   
    <div class=cell>...</div>   
  </form>
</div>

со стилями:

div.table { display:table; }
div.table > form { display:table-row; }
div.table > form > div.cell { display:table-cell; }
2 голосов
/ 09 мая 2011

Нет, вы не можете этого сделать.Я думаю, вы хотите, чтобы таким образом выровнялись обе формы в таблице, верно?

Если вам разрешен JavaScript на странице, вы можете добавить различные текстовые поля и т. Д. Внутри элементов <td>,присоедините к этим полям onchange обработчики событий, чтобы заполнить соответствующие (скрытые) поля в ваших реальных формах.

1 голос
/ 09 мая 2011

Это будет проблемой во всех HTML ... включая XHTML и HTML5.

Таблица XHTML dtd ..

<!ELEMENT table (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>

0 голосов
/ 09 мая 2011

Да! Нет проблем с HTML5. Теперь теги таблиц - это просто сокращение правил оформления таблиц.

0 голосов
/ 09 мая 2011

Нет реальной необходимости иметь две формы в одной таблице, если вы хотите поместить их в несколько строк.Чем больше таблица, тем дольше браузер загружает и отображает ее.Вместо этого присвойте каждой форме собственную таблицу и поместите теги таблицы в теги формы, например:

<form method="GET" action="foo.sh">
  <table>
  </table>
</form>
0 голосов
/ 09 мая 2011

Не между <tr> тегами.Они должны работать за пределами <table> или внутри <td>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...