[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: <form> внутри <table> разрывает таблицу в IE8
zvezda_t
Здравствуйте, скажите пожалуйста, почему в IE8 происходит разрыв таблицы и как этот разрыв устранить, пример таблицы:

<table width='100%'  border=1>
<tr>
<td>

//открылась форма раньше в другой таблице
</form>
</td>

<td
valign='bottom' align='center'>
<form
name='form_otmena' method='POST'>
<input
name='otmena' type='submit' value='Отменить'>
</form>
</td>
</tr>
</table>




Спустя 4 минуты, 41 секунда (26.08.2010 - 15:05) Nikitian написал(а):
Нарушаете принцип вложенности - потому и разрывает. На каком уровне тег открыт, на том же он должен и закрываться. У вас видимо открыт перед таблицей - вот после таблицы его и надо закрывать.
Цитата
Поскольку одновременно можно использовать любое разумное сочетание тегов, следует помнить об их вложенности (пример 2). Один контейнер должен находиться внутри другого, и никак не пересекаться (пример 3).

Спустя 1 час, 5 минут, 32 секунды (26.08.2010 - 16:10) Evilsoul написал(а):
Во-во, человек дело говорит)

Спустя 14 часов, 14 минут, 11 секунд (27.08.2010 - 06:24) zvezda_t написал(а):
самое интересное, что разрыв в нижней части таблицы, там где форма открывается и закрывается на одном уровне:
<td valign='bottom' align='center'>
<form
name='form_otmena' method='POST'>
<input
name='otmena' type='submit' value='Отменить'>
</form>
</td>

эта ячейка отрывается от таблицы и выводится в начале следующей строки - вообще отдельно от таблицы...


Спустя 14 минут, 42 секунды (27.08.2010 - 06:39) twin написал(а):
Где то что то с <tr> напутано наверное.

Спустя 18 минут, 4 секунды (27.08.2010 - 06:57) zvezda_t написал(а):
Цитата (twin @ 27.08.2010 - 03:39)
Где то что то с <tr> напутано наверное.

Еще раз внимательно всё проверила -
всё в порядке... количество открывающихся и закрывающихся совпадает...
одинаковое количество ячеек в каждой строке...

вот первый тег <form> открывается перед таблицей, затем идет еще несколько таблиц и потом последняя, где он закрывается перед открытием новой формы.- это не правильно?

<form method='POST'>

<table>

....
</table>

<table>

....
</table>

<table>

....
</table>

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

//открылась форма раньше
</form>
</td>
<td>
<form
name='form_otmena' method='POST'>
<input
name='otmena' type='submit' value='Отменить'>
</form>
</td>
</tr>
</table>



как же мне исправить?

Спустя 26 минут, 35 секунд (27.08.2010 - 07:24) linker написал(а):
Вот тут
<td>
//открылась форма раньше
</form>
</td>
По правилам вложенности, должно быть
<td>
<form>
</form>
</td>
Вообще IE очень интересно представляет формы, у меня такое ощущение, что там такой же баг, как когда-то был с combobox, который всегда и везде перекрывал любые слои.

Спустя 25 минут, 35 секунд (27.08.2010 - 07:49) zvezda_t написал(а):
linker
оказывается помимо этих таблиц у меня еще есть внешняя для них всех таблица...
запуталась с этими вложениями...
скажи пожалуйста, не правильнее ли разметку страницы делать используя <div></div>, может мне вообще все эти таблицы поудалять? или с <div> такие же проблемы вложенности? blink.gif

Спустя 1 час, 19 минут, 6 секунд (27.08.2010 - 09:08) linker написал(а):
Можно дивами, но при этом получишь массу других проблем с версткой, дизайном и стилями. Лучше попытаться оптимизнуть существующий код.
Видимо там где присутствует эта фраза "//открылась форма раньше" находится кнопка типа
<input name='apply' type='submit' value='Применить'>
значится мне видится так
   <td>
<input
name='apply' type='submit' value='Применить'>
</td>
<td>
<input
name='otmena' type='submit' value='Отменить'>
</td>
</tr>
</table>
</form>
Далее два варианта развития событий. В скрипте, который обрабатывает данные из формы сделать проверку
if (isset($_POST['otmena'])) { header('Location: index.php'); exit; }
Второй вариант на JS - либо менять action у формы, либо редиректить.
   <td>
<input
name='apply' type='submit' value='Применить'>
</td>
<td>
<input
name='otmena' type='button' value='Отменить' onclick="window.location = 'index.php'">
</td>
</tr>
</table>
</form>

Спустя 47 минут, 18 секунд (27.08.2010 - 09:56) Evilsoul написал(а):
Ещё ячейки могут вылетать если у тебя в строках не равное количество столбцов, тогда нужно использовать значение colspan. Лучше бы ты весь код выложила, таблицу и формы, проще было бы.

Спустя 8 минут, 47 секунд (27.08.2010 - 10:04) inpost написал(а):
zvezda_t
Недавно пробовал верстку через DIV, там сразу, если какой-то из тегов отсутствует - весь дизайн плывёт. До этого работал с таблицами.
Мой совет, попробуйте через ДИВ все переписать, и чтобы работал, тогда разберётесь и решите для себя, как Вам удобнее.
Я общую разметку сейчас делаю через див, а внутри какие-нибудь разделения, то через таблицу =)

Спустя 5 минут, 24 секунды (27.08.2010 - 10:10) Evilsoul написал(а):
Для вёрстки дивом нужно хорошо ксс знать, там куча примочек с наложением и позиционированием.

Спустя 17 минут (27.08.2010 - 10:27) inpost написал(а):
Evilsoul
Ну вот и повод появился чтоб изучить новое!

Спустя 26 минут, 17 секунд (27.08.2010 - 10:53) Evilsoul написал(а):
inpost
Да, кстати очень перспективное, возможностей гораздо больше чем с таблицами.

Спустя 4 минуты, 3 секунды (27.08.2010 - 10:57) Nikitian написал(а):
zvezda_t
Вижу в вашем примере вложенные формы. Наверно будет неприятным сюрпризом, что такие формы не будут работать в IE.

Спустя 18 минут, 55 секунд (27.08.2010 - 11:16) zvezda_t написал(а):
Цитата (Nikitian @ 27.08.2010 - 07:57)
zvezda_t
Вижу в вашем примере вложенные формы. Наверно будет неприятным сюрпризом, что такие формы не будут работать в IE.

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

Спустя 11 минут, 19 секунд (27.08.2010 - 11:27) linker написал(а):
Все решается гораздо проще, нежели переделывать все на дивы и тому подобное. см. выше по постам.

Спустя 21 минута, 11 секунд (27.08.2010 - 11:48) zvezda_t написал(а):
linker
Спасибо! Ты всё точно понял - именно так у меня и располагаются кнопки! Вариант с JavaScript мне кажется самым простым - так и сделаю, как ты показал... если с таблицами не разберусь (всё таи интересно узнать почему у меня одна ячейка отрывается)

привожу весь код(структуру, без содержимого - чтоб не загромождать)

<form name='dispatch' method='POST'>
<table
width='100%' border=0>
<tr >
<td
width='19%' valign='top'>
...
</td>
<td
width='32%' valign='top' align=right>
...
</td>
<td>
//пустая ячейка
</td>
<td
width='44%'>

<table
width='100%' class='tab22' border=0>
<tr>
<td>
<input
name='apply' type='submit' value='Применить'>
</td>
<td>
...</td>
<td>
..</td>
<td>
..</td>
</tr>
<tr>
<td
valign='bottom'>
</td>
<td>
....</td>
<td>
...</td>
<td>
...</td>
</tr>
<tr>
<td
align='right' valign='bottom'>...</td>
<td>
...</td>
<td >

//закрывается форма dispatch
</form>
</td>
<td
valign='bottom' align='center'>
<form
name='otmenit' method='POST'>
<input
name='otmena' type='submit' value='Отменить'>
</form>
</td>
</tr>
</table>

</td>
</tr>
<tr>
<td
colspan=3 valign='top'>
...
</td>
</tr>
</table>

Спустя 49 минут, 44 секунды (27.08.2010 - 12:38) inpost написал(а):
Скинь содержание второй формы, полностью, какой у неё вид. Там есть вложенные input ? Или просто одна кнопка?

Спустя 4 минуты, 11 секунд (27.08.2010 - 12:42) Nikitian написал(а):
Цитата (zvezda_t @ 27.08.2010 - 08:16)
формы вложены в таблицы, но между собой они не вложены: сначала одна форма закрылась, потом другая открылась)

А уровни вложенности почему не соблюдаете? Открывается форма перед таблицей, а закрывается в таблице.

Спустя 33 секунды (27.08.2010 - 12:43) Evilsoul написал(а):
Если я правильно понял, то у тебя форма в правой верхней ячейке.
У тебя 4 столбца, а значит параметр colspan="4".

P.S. все значения параметров после = обрамляются "".

Спустя 2 минуты, 34 секунды (27.08.2010 - 12:46) Evilsoul написал(а):
А лучше нарисуй что ты хочешь получить, я тебе сделаю.

Спустя 1 минута, 56 секунд (27.08.2010 - 12:47) zvezda_t написал(а):
Цитата (Evilsoul @ 27.08.2010 - 09:43)
Если я правильно понял, то у тебя форма в правой верхней ячейке.
У тебя 4 столбца, а значит параметр colspan="4".

P.S. все значения параметров после = обрамляются "".

абсолютно точно - правая ячейка с таблицей где поля формы, но в первых трех ячейках тоже есть input'ы относящиеся к этой форме dispatch

изменила параметр на colspan="4". -- не помогло(

Спустя 1 минута, 3 секунды (27.08.2010 - 12:49) Evilsoul написал(а):
в кинь их в структуру таблицы

Спустя 10 секунд (27.08.2010 - 12:49) inpost написал(а):
Evilsoul
Тут вот какое дело, может даже в данной ситуации вторая форма не нужна. Можно сделать вообще:
<form>
<
table>
</
table>
</
form>

А внутреннюю часть, там где подразумевалось размещение второй формы, вообще заменить на обычную ссылку. Поэтому я и хочу узнать, что распологается внутри второй формы...

Ах да, ещё пустые td надо писать так: <td>&nbsp;</td>

Спустя 3 минуты, 30 секунд (27.08.2010 - 12:52) Evilsoul написал(а):
Цитата (inpost @ 27.08.2010 - 09:49)
Ах да, ещё пустые td надо писать так: <td>&nbsp;</td>

  или так)
но это не смертельно, у неё бордер 0.

Спустя 50 секунд (27.08.2010 - 12:53) zvezda_t написал(а):
Цитата
А уровни вложенности почему не соблюдаете? Открывается форма перед таблицей, а закрывается в таблице.


вставила <form> внутрь самой внешней таблицы - не помогло - теперь моя последняя ячейка отрывается от таблицы и выводится справа от неё...


<table width='100%' border=0>
<tr >
<td
width='19%' valign='top'>
<form name='dispatch' method='POST'>
...
</td>
<td
width='32%' valign='top' align=right>
...
</td>
<td>
//пустая ячейка
</td>
<td
width='44%'>

<table
width='100%' class='tab22' border=0>
<tr>
<td>
<input
name='apply' type='submit' value='Применить'>
</td>
<td>
...</td>
<td>
..</td>
<td>
..</td>
</tr>
<tr>
<td
valign='bottom'>
</td>
<td>
....</td>
<td>
...</td>
<td>
...</td>
</tr>
<tr>
<td
align='right' valign='bottom'>...</td>
<td>
...</td>
<td >

//закрывается форма dispatch
</form>
</td>
<td
valign='bottom' align='center'>
<form
name='otmenit' method='POST'>
<input
name='otmena' type='submit' value='Отменить'>
</form>
</td>
</tr>
</table>

</td>
</tr>
<tr>
<td
colspan=3 valign='top'>
...
</td>
</tr>
</table>

Спустя 1 минута, 39 секунд (27.08.2010 - 12:55) inpost написал(а):
zvezda_t
Почему меня игнорируешь? Сейчас за пару минут всё тебе решим. Прочитай мои сообщения выще...

Evilsoul
Это смертельно для ИЕ6-7

Спустя 2 минуты, 3 секунды (27.08.2010 - 12:57) Evilsoul написал(а):
Так а что у тебя не так? я не вижу проблемы? у меня всё на месте.

Спустя 3 минуты, 42 секунды (27.08.2010 - 13:00) трамонтана написал(а):
чиво тут развели...нипанятна...
Nikitian дал ответил сразу в своём первом сообщении, вот так :
<i>привет <b>мир</i></b>
делать нельзя

зы т.е. в твоём случае(утрируем)
 <td><form></td></form>

Спустя 2 минуты, 25 секунд (27.08.2010 - 13:03) inpost написал(а):
трамонтана
Мы тут не показываем как не правильно, а пытаемся (по крайней мере я) показать как правильно =)

Спустя 1 минута, 54 секунды (27.08.2010 - 13:05) Evilsoul написал(а):
выложи скрин, или ссылку дай

Спустя 41 секунда (27.08.2010 - 13:05) трамонтана написал(а):
а я не говорю что вы показваете как неправильно, это я звезде написал - если она не поняла что вы хотите сказать

Спустя 3 минуты, 6 секунд (27.08.2010 - 13:09) zvezda_t написал(а):
inpost
извини) во второй форме у меня всего навсего одна кнопочка - которая должна обнулить всю форму - редирект)))


трамонтана
Цитата
зы т.е. в твоём случае(утрируем)

<td><form></td></form>

я понимаю что у меня коряво... таблицами не выравнять значит? использовать или одну форму или javascript ?

Спустя 2 минуты, 8 секунд (27.08.2010 - 13:11) zvezda_t написал(а):
Цитата
Так а что у тебя не так? я не вижу проблемы? у меня всё на месте.

а ты где проверяешь?
у меня в IE 6 тоже проблем нет - а вот в IE8 - разрыв!

Спустя 1 минута, 17 секунд (27.08.2010 - 13:12) inpost написал(а):
zvezda_t
Делай как я говорю:
<form>
<
table>

ВСЕ ВСЕ ВСЕ

</table>
</
form>


А там где редирект идет, делай так:
<a href="САМ НА СЕБЯ"><img src="ОТМЕНА.jpg"></a>
Вот и всё, не будет проблем с вложенностью!

Спустя 1 минута, 13 секунд (27.08.2010 - 13:13) zvezda_t написал(а):
inpost
хорошо! спасибо, поняла)

СПАСИБО ВСЕМ!!!! smile.gif

Спустя 5 минут, 18 секунд (27.08.2010 - 13:18) inpost написал(а):
zvezda_t
Если после этого снова будет растягиваться, лучше всего скинь ссылку на страницу в интернете, там уже код посмотрю и найду дифект =)


_____________

Что ты сделал сегодня - для завтра?
"Приидите ко Мне вси труждающиеся и обремененнии и Аз упокою вы, возмите иго Мое на себе и научитеся от Мене яко кроток есмь и смирен сердцем и обрящете покой душам вашим, иго бо Мое благо и бремя Мое легко есть."(Мф. 11:28-30)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.