JavaScript « Сабмит формы с помощью javascript в Google Chrome срабатывает только единожды

Есть простая форма.

<form target="_blank" action="somescript.php" method="Post" id="simpleForm">
<input type="hidden" name="url" value="http://...">
<input type="hidden" name="code" value="wrxosf">
</form>
 

...и некая ссылка

<a href="#" onclick="$('#simpleForm').submit();return false;">Do it!</a>
 

Работает нормально во всех браузерах, однако в Chrome только единожды. Последующие нажатия на ссылку не дают результатов.

1 ответов


Сделал подробное исседование, проблема на самом деле сокрыта в Хроме,
Создаем простую форму c кнопкой Submit. В форме указываем target="_blank"


<form method="Post" target="_blank" action="nofile">
<input type="submit">
</form>
 

Сабмит открывает новую вкладку. Закрываем ее, и более кнопка сабмит не создает никаких событий.
Данная ситуация уже описана в багтрекере Хромиума и Вебкита, что говорит о том, что в третьем Safari данная проблема так же актуальна.

Ну что же, ждем решения со стороны создателей этих супербраузеров. ;)

Я думаю что это или баг или фитча хрома.

Вот например такой код



<html>
  <head>
    <script>
      function f() {
    alert("you are here");
        return true;
      }
    </script>
  </head>
  <body>

    <form method="GET" action="someurl" onsubmit="return f();" id="superForm">
      <input type="text" name="test">
      <input type="submit">
    </form>

  <a href="#" onclick="document.getElementById('superForm').submit();return false;">Do it!</a>

  </body>
</html>
 

Если вы нажимаете сабмит - то вызывается функция f() и вылетает алерт. Если же в этом же примере отправлять форму ссылкой то эта f() уже не вызывается и форма отправляется без проверки onSubmit

Может быть стоит попробовать убрать "return false"?