RGameShow
@RGameShow
В поисках ответов на глупые вопросы

Как в Contact Form 7 скрывать кнопку пока он думает?

Сделал интеграцию с bitrix 24, теперь тупит перед отправкой секунды 3..
Как сделать чтобы кнопка исчезала, а то из за кликов пользователя прилетает по 3 - 5 заявок..
  • Вопрос задан
  • 480 просмотров
Решения вопроса 1
RGameShow
@RGameShow Автор вопроса
В поисках ответов на глупые вопросы
Решение моей проблемы:
$(document).ready(function( $ ) {
        function timer(element_class){
            let timer;
            let x = 4;
            let defVal = $(element_class).val();

            function countdown(){
                $(element_class).val('Повторная отправка формы через: ' + x + 'сек.');
                x--;
                if (x<0){
                    clearTimeout(timer);
                    $(element_class).val(defVal);
                }
                else {
                    timer = setTimeout(countdown, 1000);
                }
            }
            countdown();
        }
        document.addEventListener( 'wpcf7submit', function( event ) {

            let element_class = '#' + event.detail.id + ' .wpcf7-submit';
            timer(element_class);
            $(element_class).attr('disabled', 'disabled');

            setTimeout(function(){
                $(element_class).removeAttr('disabled');
            }, 4000);

        }, false );

        document.addEventListener( 'wpcf7mailsent', function( event ) {
            let element_class = '#' + event.detail.id + ' .wpcf7-submit';
            $(element_class).remove();
        }, false );
    });
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
deniscopro
@deniscopro Куратор тега WordPress
WordPress-разработчик, denisco.pro
Возможно, событие wpcf7submit подойдет.
Ответ написан
kores
@kores
Помог ответ? Отметь решением!
можно сделать вариант на jquery, после клика мы ставим атрибут disabled, а через 5 секунд убираем этот атрибут:
добавил еще, чтобы текст менялся и было понятнее...
// Когда нажали на кнопку #button_id
$(document).on('click', '#button_id', function(){

	var element_id = $(this);
  
	// Установим атрибут на кнопку disabled
	$(element_id).attr('disabled', 'disabled');
  $(element_id).html('Loading...');

	// Через 5 секунд уберем этот атрибут
	setTimeout(function(){
		$(element_id).removeAttr('disabled');
    $(element_id).html('Submit');
	}, 5000); // Время в милисекундах

});


Выложил пример на jsfiddle:
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы