Якщо ви хочете «редаговану сітку» , тобто таблиці як структура , яка дозволяє зробити будь-якого з рядків форми, використання CSS , який імітує розташування за столом тега: display:table
, display:table-row
, і display:table-cell
.
Немає необхідності загортати всю таблицю у форму і не потрібно створювати окрему форму та таблицю для кожного очевидного рядка вашої таблиці.
Спробуйте це замість цього:
<style>
DIV.table
{
display:table;
}
FORM.tr, DIV.tr
{
display:table-row;
}
SPAN.td
{
display:table-cell;
}
</style>
...
<div class="table">
<form class="tr" method="post" action="blah.html">
<span class="td"><input type="text"/></span>
<span class="td"><input type="text"/></span>
</form>
<div class="tr">
<span class="td">(cell data)</span>
<span class="td">(cell data)</span>
</div>
...
</div>
Проблема із загортанням всієї ТАБЛИЦІ у ФОРМУ полягає в тому, що будь-які елементи форми будуть надсилатись при подачі (можливо, це бажано, але, мабуть, ні). Цей метод дозволяє визначити форму для кожного "рядка" та надіслати лише цей рядок даних при надсиланні.
Проблема із загортанням тегу FORM навколо тега TR (або TR навколо FORM) полягає в тому, що це недійсний HTML. ФОРМА все ще дозволить надсилати, як зазвичай, але в цей момент DOM порушено. Примітка. Спробуйте отримати дочірні елементи вашої ФОРМИ або TR за допомогою JavaScript, це може призвести до несподіваних результатів.
Зауважте, що IE7 не підтримує ці стилі таблиць CSS, і IE8 знадобиться декларація doctype, щоб перевести його в режим "стандарт": (спробуйте цей або щось еквівалентне)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Будь-який інший веб-переглядач, що підтримує дисплей: таблиця, дисплей: рядок таблиці та дисплей: комірка таблиці повинен відображати таблицю даних css такою ж, як і при використанні тегів TABLE, TR і TD. Більшість з них.
Зверніть увагу , що ви також можете імітувати THEAD, TBODY, TFOOT, обернувши свої групи рядків в інший DIV з display: table-header-group
, table-row-group
і table-footer-group
відповідно.
ПРИМІТКА . Єдине, що ви не можете зробити з цим методом - це колпан.
Ознайомтеся з цією ілюстрацією: http://jsfiddle.net/ZRQPP/
<form>
не можна ставити всередину<tr>
.