Я представляю форму с использованием JQuery и прослушивателя событий, связанного с div (а не поле ввода), и я пытаюсь предотвратить несколько отправлений, поэтому клиент не получает переплату. Я пытаюсь выполнить это, удалив класс submit-button
щелкнутого div, поэтому в следующий раз, когда пользователь нажмет на него, JQuery не будет прослушивать событие, связанное с submit-button
, предотвращающим несколько отправлений.Предотвращение отправки нескольких форм
Использование реализации ниже, однако, по какой-либо причине не предотвращает несколько отправлений, как предполагалось.
HTML
<div class="submit-button button-style">Submit</div>
JQuery
$(".submit-button").click(function(){
$(this).removeClass("submit-button");
//**submit form**
});
Примечание: Я должен придерживаться решений, которое использует HTML выше, поэтому растворы с использованием input
элемента типа submit
, не будет полезным.
Я ценю любые предложения о том, как это сделать. Спасибо заранее!
Итак, теперь вам нужно иметь дело с повторной валидацией и повторным рендерингом. Позвольте мне сделать это просто: если вы хотите, чтобы это работало правильно, * сделайте это правильно *. Это означает «элемент ввода» типа 'submit'. Он * существует * для обработки этого прецедента. Вы можете поместить своих пользователей в радость от повторного изучения того, что разработчики веб-браузера исчерпывающе отлаживают за последние 15 лет, если вы хотите, или можете просто сделать это правильно. Я бы рекомендовал последнее. – AdamKG
Я ценю ответ. Если это был мой выбор, я бы выбрал правильный путь, используя поле 'input'. Тем не менее, даже при использовании поля «input» необходимо принять некоторые меры для предотвращения подачи нескольких форм, это не автоматическое. – AnchovyLegend
@AdamKG Pah! Разве вы не знаете, что доступность для слабых! Конвоированные конструкции способствуют СООТВЕТСТВИИ в вашей пользовательской базе. И если им это не нравится, они могут просто открыть консоль и написать свой собственный код. – Dave