Например, в следующем HTML...
<form name="outerform">
<input type="text" name="outer1"/>
<input type="text" name="outer2"/>
<div>
<form name="innerform" method="post" action="#">
<input type="text" name="inner1"/>
</form>
</div>
</form>
Firefox просто выбросит тег innerform <form>
, так как формы не могут быть вложенными.
Я столкнулся с этим при исправлении некоторого устаревшего кода. Кто-то разместил тег <form>
, покрывающий почти весь контент body
. Когда я добавил свой собственный, более локализованный <form>
, Firefox удалил внутренний тег, и мои отправки отправились во внешнюю форму. Поскольку я выполнял некоторую обработку jQuery для создания моего URL-адреса отправки, я подумал, что это моя ошибка. Я понял проблему после просмотра отображаемого HTML на вкладке HTML Firebug.
Если бы в браузере или Firebug была вкладка для «игнорируемого HTML» или какой-то другой метод, я бы сразу же выбрал ее. Я не могу просто создать View-Source и вставить его в веб-службу проверки W3C по следующим причинам:
- Из соображений безопасности компьютер разработки, на котором я работаю, не подключен к общедоступному Интернету.
- На вкладке HTML Firebug отображается отображаемый HTML-код, поэтому недопустимый тег HTML уже удален.
Наконец, в редакторе (Eclipse) я обычно ловлю подобные ошибки. Но мы используем много включаемых файлов и фреймворк Tiles, поэтому за раз вы видите только фрагмент конечной HTML-страницы.
<form>
... - person Boris Zbarsky   schedule 30.12.2011