HTML-форма onsubmit=return false; не работает


person Mike Feng    schedule 24.05.2019    source источник
comment
Выяснил, что проблема связана с Firefox. Если я запускаю фрагмент в Chrome, он ведет себя так, как ожидалось.   -  person Mike Feng    schedule 24.05.2019


Ответы (2)


Возврат false является соглашением JQuery. Это не работает в ванильном Javascript.

Чтобы добиться аналогичного эффекта, вам нужно использовать аргумент «e», который передается вашему обработчику событий, и вызывать его методы stopPropagation или preventDefault... но поскольку в атрибуте onsubmit вообще нет аргументов, я бы не подумал можно было даже от такого атрибута.

Однако этот ответ (Доступ к событию для вызова preventdefault из пользовательской функции, происходящей из атрибута onclick тега), предлагает способ сделать это. Я лично не пробовал, так что YMMV.

person machineghost    schedule 24.05.2019

Вы можете выполнять функции только в атрибуте onsubmit тега формы, а возврат false ничего не даст. Здесь вы можете использовать event.preventDefault().

попробуйте что-то вроде этого ниже

<form id="myform" onsubmit="function (e) { e.preventDefault(); } ">
person fullmetal    schedule 24.05.2019
comment
return false; работает, но оказывается проблема в Firefox. Вставьте свой код в jsfiddle и попробуйте запустить его в Firefox, он тоже не будет работать: jsfiddle. сеть/симбанч/1kvfg7h0/10 - person Mike Feng; 24.05.2019