Contact Form 7 ограничение отправок формы?
Подскажите, как ограничить количество нажатий на кнопку отправки, что б пользователь, после того как пройдет все обязательные поля к заполнению мог только один раз отправить форму кнопкой Submit.
<form> some requered* fields <div class="cf7__wrapper--submit a-up a-delay-1 animated fadeInUp animation-end"> <div class="button--primary"> <p><input class="wpcf7-form-control has-spinner wpcf7-submit cf7__submit" type="submit" value="Submit"><span class="wpcf7-spinner"></span> </p> </div> </div> <div class="wpcf7-response-output" aria-hidden="true"></div> </form>
Необходимо как-то устанавливать disabled но только после того как все заполненно корректно. Пробовал так
const sendBtn = $('.cf7__submit'); if (sendBtn.length !== 0) { sendBtn.on("click", function() { sendBtn.attr('disabled', true); setTimeout( function(){sendBtn.attr('disabled', false)}, 3000); }) }
но это глупость. Оно не учитывает что поля не заполены корректно... Не могу найти правильный ответ
Вариантов много. Можно например скрыть форму в целом при отправки и можно так же это сделать несколькими способами. Например, в дополнительных настойках прописать это:
или без jquery так:
или так, с запретом на submit как вы и хотите:
То есть очень много вариантов. Если вы хотите использовать только js, то опять же, много всяких событий в CF, например после успешной отправки формы
wpcf7mailsent
, например на ванильном JS? запрещаем отправку на submit:или полностью скрываем форму
Где
your-form-id
это ID вашей формы, ну или на JQ тоже самое:В общем много вариантов, а вообще, на офф сайте, много всяких интересных вещей в доке https://contactform7.com/docs/
Вариантов, конечно много, но они не решают проблему глобально. Была идея сделать через
но при таком выводе у пользователя всё равно есть время понаклацивать запросов на сервер... Если же цеплятся за событие wpcf7beforesubmit То оно не дает конроля за Обязательными полями к заполнению. => Предположим пользователь ввел не все обязательные данные тогда при нажатии кнопки Send, он блокирует отправку формы на 3 сек.
Тогда при клике заблокируйте и все
Напишите плз, получилось решить или нет?