【发布时间】:2018-06-18 19:52:31
【问题描述】:
这是我的网站“Drupal 8”和“Drupal Commerce 2”:
https://www.s1biose.com/produit/savon-artisanal-bio-la-cannelle
我想禁用“添加到购物车”按钮。所以我在我的主题的 JS 文件中添加了以下代码:
(function ($) {
$('.commerce-order-item-add-to-cart-form .btn').prop("disabled", true);
})(window.jQuery);
可以,但是有问题。
当我更改产品的变体时,按钮会激活。为什么?
我希望他被禁用。
在这个屏幕截图上它可以工作:
在此屏幕截图中,当我更改产品的变体(不重新加载页面)时,禁用的类消失了:
【问题讨论】:
-
我猜这是由于当您更改产品的变体时,您将属性“禁用”设置为 true 的按钮(或节点)正在被替换(由新节点) .为了使此按钮保持禁用状态,您必须例如每次更改变体时,将 prop 'disabled' 设置为 true。
-
@Kurzalead 谢谢你的解释。这该怎么做 ? s1biose.com/produit/savon-artisanal-bio-la-cannelle
-
我无法给你一个工作示例,因为我无权访问你的源代码。此外,我对为你做你的工作不感兴趣,而是提示你自己做一些研究。
-
如果“按钮”实际上是一个“链接”,即一个锚标签,你需要使用
.disabled类作为锚忽略禁用的属性例如:<a href="#" class="btn btn-primary btn-lg disabled" -
很难通过您的代码来判断,因为它没有进行任何类型的条件测试来确定按钮状态。如果用户更改购物车内容,这通常涉及某种形式的回发,那么我认为该按钮应该变为活动状态。所以你需要要么在服务器端管理按钮状态,要么将按钮状态信息传递给 JQ 代码。
标签: javascript css twitter-bootstrap drupal