Вложенные формы в HTML

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

Например:

<form>
  <input name="input1">
  <input name="input2">
    <form>
    ...
    </form>
  <input name="input2">
</form>

В этом случае в обработчик формы придут данные из полей input1 и input2. Поле input3 браузер не отправит. И в $_POST его не будет.

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

Исправить это довольно просто — достаточно заключить содержимое внешней формы в дополнительный контейнер. Например в div.

Получится что-то вроде:

<form>
<div>
  <input name="input1">
  <input name="input2">
    <form>
    ...
    </form>
  <input name="input2">
</div>
</form>
Запись опубликована в рубрике Фриланс с метками , . Добавьте в закладки постоянную ссылку.

Добавить комментарий