Проблема в том, что форма отправляется по умолчанию.
Вы не можете убрать атрибут action
формы и добавить его позже, используя JavaScript, потому что браузер будет использовать текущую страницу как action
, и форма все еще может быть отправлена.
Кроме того, удаление кнопки «отправить» не помогает, так как форму все еще можно отправить с помощью клавиши enter .
Но, я представляю вам (каламбур не предназначен!) Это зло идея:
<form action="#">
....
</form>
вначале это делает форму практически не подлежащей отправке, поскольку целью отправки является текущая страница.
Затем вы должны установить правильный атрибут action
, используя JavaScript.
Я не могу представить причину, по которой это не будет работать надежно во всех браузерах, за исключением того, что попытка отправить его заставит браузер перейти на верхнюю часть страницы из-за хеша #
.