Отправка вложенной формы, странное поведение - PullRequest
1 голос
/ 17 июня 2010

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

Поскольку некоторые сайты, использующие этот баннер, имеют <form> Оборачивая весь сайт, я обнаружил, что форма баннеров не отправляет, а отправляет внешнюю форму.

Вот код:

  <form onSubmit="return alert('outer form submitted')">

    <!-- only if i add this empty form it submits the inner -->
         <form></form>
    <!-- End Empty form -->

    <!-- inner form -->
      <form onSubmit="return alert('inner form submitted')" > 
           <input type="submit" /> 
      </form> 
    <!--end  inner form -->

 </form> 

Как вы можете видеть, только если ядобавьте пустой <form> перед внутренним <form>, оно предупреждает (отправляет) внутреннее, в противном случае оно отправляет внешнее.

, как лучше всего закодировать рекламный баннер для сайта с формой?

1 Ответ

9 голосов
/ 17 июня 2010

Наличие внутри является искаженным HTML, и все ставки отключены, как любая реализация браузера / user-agent / javascript-engine / dom собирается с этим справиться. Ожидайте сильно разных или равных результатов между разными посетителями. Просто нет в . Период:)

Наиболее вероятный сценарий в вашем наблюдаемом поведении: запуск тега внутри формы, вероятно, «отбрасывается» как недопустимый, включая любые действия / события (но, вероятно, не s), первый закрывает «основная» форма.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...