Тег формы не будет содержать элементы внутри таблицы
У меня возникла любопытная проблема; У меня есть форма внутри <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;
.