javascript - 首次点击后禁用 WooCommerce 添加到购物车按钮会阻止提交

标签 javascript jquery wordpress woocommerce

当用户出于两个原因单击 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');
        }

    });

}

虽然这有效,但即使工作,它似乎也禁用了按钮,添加产品不起作用,因为表单提交似乎根本不触发。

为什么会发生这种情况?我需要在这里更改什么?

最佳答案

通过使用提交事件来修复它......

由于 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');
        }

    });

}

编辑:我删除了以下按钮的禁用功能(使用 addClass 代替),因为对于某些商品类型来说,如果您将商品添加到购物车,则似乎无法将商品添加到购物车这样做了:

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

如果有人知道原因,请告诉我。

关于javascript - 首次点击后禁用 WooCommerce 添加到购物车按钮会阻止提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55639009/

相关文章:

php - 使用表名作为函数参数

javascript - 替换编辑器中的内容?

jquery - 网站无法在 Safari 浏览器中正确加载

javascript - 可放置区域的 HTML5 可拖动改变位置

javascript - 如何获取可选择的 jquery 元素的 innerHTML?

javascript - 如何提高 9,999 行 DOM jquery DataTable 的性能/速度?

javascript - 如果宽度 > 915 像素,则使用函数滚动页面 100 像素

javascript - 如何固定下拉菜单中链接的位置

javascript - 悬停图片显示说明

javascript - 如何隐藏和显示 map 在 angular 1.x 中使用 angularjs-google-maps