Формы при отправке по умолчанию переходят на набор action
url.В случае, если он не установлен явно, URL является текущей страницей.Первый запрос на отправку в конечном итоге запускает процесс навигации.При этом загруженный в данный момент код JavaScript выгружается.Это включает в себя обработчики событий.Следовательно, почему вы получаете несоответствие возможности двойной подачи или нет.Если сетевой запрос и другие страницы обрабатываются, URL-адрес действия происходит быстрее, чем скорость, необходимая для повторного нажатия на обработчики событий, и ваша точка останова больше не будет вызываться / достигаться, поскольку они уже выгружены.И наоборот, если сетевой запрос медленнее, вы сможете вызвать обработчик и вызвать точку останова (если она еще не выгружена).
Вы говорите, что не хотитенавсегда отключите кнопку отправки, но даже если вы отключите ее, отправка формы вызовет изменение страницы, и в вашем примере это просто загрузит ту же страницу с новой кнопкой отправки, которая больше не будет отключена, потому что она новаястр.Таким образом, он никогда не отключается окончательно.
Теперь, если ваша настоящая форма не выполняет обычную отправку формы, и вы используете что-то вроде запроса ajax, соединения через веб-сокет и т. Д., Тогда выустановит кнопку в положение «отключено» (или установит флаг занятости) перед запросом и сбросит ее в обратном вызове запроса ajax, событии веб-сокета и т. д.
Например:
jQuery('form').on('submit',function(e){
e.preventDefault();
var fd = new FormData(this);
jQuery('yourbutton').prop('disabled',true);
fetch('url',{method:"post",body:fd}).then(()=>jQuery('yourbutton').prop('disabled',false));
});