Отключение кнопки WooCommerce добавить в корзину после первого нажатия запрещает отправку - PullRequest
1 голос
/ 11 апреля 2019

Я пытаюсь отключить кнопку WooCommerce Добавить в корзину , когда пользователь нажимает на нее по двум причинам.

  • Чтобы предотвратить многократные нажатия на нее
  • Чтобы показать пользователю, что его щелчок сделал что-то

Я использовал этот код:

if ($('body').filter('.single-product')) {

    var add_cart_button = $('.single_add_to_cart_button');

    /* Disable button on add to bag click if button is active */

    add_cart_button.on('click', function(e) {

        if (!$(this).hasClass('disabled')) {
            $(this).prop('disabled', true); // Prevent multi adds
            $(this).addClass('disabled');
        }

    });

}

Хотя это работает, кажется, что кнопка также отключается, даже если работает, добавлениепродукт не работает, так как отправка формы, похоже, вообще не срабатывает.

Почему это происходит и что мне нужно изменить здесь?

1 Ответ

1 голос
/ 13 апреля 2019

Исправлено, сделав это вместо события отправки ...

Поскольку form не имеет атрибута name, я должен был нацелить его по-другому:

if ($('body').filter('.single-product')) {

    var add_cart_button = $('.single_add_to_cart_button');

    add_cart_button.closest('form').on('submit', function(e) {

        var cur_atc_button = $(this).find('.single_add_to_cart_button');

        if (!cur_atc_button.hasClass('disabled')) {
            cur_atc_button.addClass('disabled');
        }

    });

}

Редактировать: Я удалил приведенное ниже отключение кнопки, так как для некоторых типов элементов не удалось добавить элемент в корзину, если вы сделали это:

cur_atc_button.prop('disabled', true); // Prevent multi adds

ЕслиКто-нибудь знает, почему, пожалуйста, дайте мне знать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...