Перейти к содержимому


Блокировка Кнопки Оформления Заказа (Для Предотвращения Дублирования)


  • Авторизуйтесь для ответа в теме
В этой теме нет ответов

#1 Mr.Nito

Mr.Nito

    Активный участник

  • Модераторы
  • 1 363 сообщений

Отправлено 19 Декабрь 2020 - 17:51

в файле main.js
заменить
// Валидация формы на странице оформления заказа
$("#quickform").on('submit', function(){
// Если форма невалидна не отправляем её на сервер
if(!$(this).valid()) {
	 return false;
}
// Получаем данные формы, которые будем отправлять на сервер
var formData = $(this).serializeArray();
// Сообщаем серверу, что мы пришли через ajax запрос
formData.push({name: 'ajax_q', value: 1});
// Аяксом добавляем товар в корзину и вызываем форму быстрого заказа товара
$.ajax({
	 type : "POST",
	 dataType: 'json',
	 cache : false,
	 url	 : $(this).attr('action'),
	 data : formData,
	 beforeSend: function () {	
	 preloadButton($('#confirmOrder .button'));
	 },
	 success: function(data) {
	 // Если заказ был успешно создан
	 if( data.status == 'ok' ) {
		 window.location = data.location;
	 } else if( data.status == 'error' ) {
		 new Noty({
		 timeout: "7000",
		 text: data.message,
		 type: "error",
		 animation: {
			 open: null,
			 close: null
		 }		
		 }).show()			
	 } else {
		 alert('Во время оформления заказа возникла неизвестная ошибка. Пожалуйста, обратитесь в службу технической поддержки.');
	 }
	 $('#confirmOrder .button').html('Оформить заказ')
	 }
});
return false;	
}).validate();
на
// Валидация формы на странице оформления заказа
$("#quickform").on('submit', function(){
// Если форма невалидна не отправляем её на сервер
if(!$(this).valid()) {
	 return false;
}
// Получаем данные формы, которые будем отправлять на сервер
var formData = $(this).serializeArray();
// Сообщаем серверу, что мы пришли через ajax запрос
formData.push({name: 'ajax_q', value: 1});
var $orderBtns = $("#confirmOrder .button")
// Аяксом оформляем заказ
$.ajax({
	 type : "POST",
	 dataType: 'json',
	 cache : false,
	 url	 : $(this).attr('action'),
	 data : formData,
	 timeout: 3000,
	 beforeSend: function () {	
	 preloadButton($('#confirmOrder .button'));
	 $orderBtns.addClass('_disabled')
	 },
	 success: function(data) {
	 // Если заказ был успешно создан
	 if( data.status == 'ok' ) {
		 window.location = data.location;
	 } else if( data.status == 'error' ) {
		 new Noty({
		 timeout: "7000",
		 text: data.message,
		 type: "error",
		 animation: {
			 open: null,
			 close: null
		 }		
		 }).show()
		 $orderBtns.removeClass('_disabled').html('Оформить заказ');
	 } else {
		 alert('Во время оформления заказа возникла неизвестная ошибка. Пожалуйста, обратитесь в службу технической поддержки.');
		 $orderBtns.removeClass('_disabled').html('Оформить заказ');
	 }
	
	 },
	 error: function(){
	 $orderBtns.removeClass('_disabled').html('Оформить заказ')
	 }		
});
return false;	
}).validate();

Прикрепленные изображения

  • Screenshot_2_conditer.jpg





Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных