Перейти к содержанию
Официальный форум поддержки Simpla

loading по клику Оформить


Рекомендуемые сообщения

Часто приходят дублированные заказы, а парой и 3-4 сразу, в следствии медленного интернете покупателя и множественного нажатия на кнопку Оформить. Может кто-то фиксил это блокировкой сабмита и выводом какого-то прогресса?

Изменено пользователем Денис
Ссылка на сообщение
Поделиться на другие сайты

Часто приходят дублированные заказы, а парой и 3-4 сразу, в следствии медленного интернете покупателя и множественного нажатия на кнопку Оформить. Может кто-то фиксил это блокировкой сабмита и выводом какого-то прогресса?

вот скрипт отключающий кнопку на заданное время

<script>
 $('.button').click(function(){
    var submit = $(this);
    setTimeout(function() {
    submit.attr('disabled', 'disabled');
	},100);
    setTimeout(function() {
         submit.removeAttr('disabled');
    },3000);
    
 });
</script>
Ссылка на сообщение
Поделиться на другие сайты

 

вот скрипт отключающий кнопку на заданное время

<script>
 $('.button').click(function(){
    var submit = $(this);
    setTimeout(function() {
    submit.attr('disabled', 'disabled');
	},100);
    setTimeout(function() {
         submit.removeAttr('disabled');
    },3000);
    
 });
</script>

 

не совсем подходит имея уже baloon.js погуглив нашел оптимальный вариант связки http://malsup.com/jquery/form/ и http://jqueryvalidation.org/

 

Примерный вариант моего кода, думаю не сложно будет сделать кому-то для своего сайта

 

 

<script type="text/javascript">
$(function() {
    
    $(".form").validate({ // форма
        rules: {
            name: "required",
            phone: "required",
            address: "required"
        },
        messages: {
            name: "Введите ФИО",
            phone: "Введите телефон",
            address: "Введите адрес доставки"
        },
        //Если все хорошо, отправляем post данные по заказу
        submitHandler: function(form){
            $(".btn-send").attr('disabled', true); //блокирует сабмит
            $(".submit_row").show(); //блок с гифкой загрузки
            $(form).ajaxSubmit({
                target: '.target-block', //блок где выводится результат post
                url: "/cart",
                success: function(){
                    $(".block-form").html(''); //в этом блоке должно быть все содержимое корзины которое скроется при успешной отправки заказа
                }
            }); 
        }
   });
  
});
</script>

в cartview.php после      $this->cart->empty_cart(); пишем сообщение которое выведется в блоке с class="target-block". В итоге получим дополнительно оформление заказа без перезагрузки страницы

Изменено пользователем Денис
Ссылка на сообщение
Поделиться на другие сайты

В обоих решения - и #3 и #4 - подход неверный ПРИНЦИПИАЛЬНО.

Они блокируют кнопку, а надо блокировать отправку формы. Это совсем не одно и то же.

Ссылка на сообщение
Поделиться на другие сайты

у меня вначале идет блокировка формы, после валидации и сабмита кнопка блокируется, можно дописать ее скрытие $(".btn-send").hide(); и все, показывается loading все отлично работает. А предлагать платные решения есть отдельный раздел

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...