【问题标题】:jQuery change input value on product page that will carry over to cartjQuery更改将结转到购物车的产品页面上的输入值
【发布时间】:2016-03-30 17:15:47
【问题描述】:

我正在使用一些 jQuery 来设置特定选择选项的值;我正在努力做到这一点,所以如果用户选择某个选项,他们必须购买设定的数量(在这种情况下为 10 个)。我正在使用val(),它设置了它,但是当我将产品添加到购物车时,购物车页面只显示 1。我应该使用不同的 jQuery 函数,或者我想要完成的事情涉及更多代码?

jQuery(function($) {
    $('form').on('change', '#purchase', function(){
        if($(this).val()=="Table of 10") {
            $('input[type="number"]').val("10").prop('disabled', true);
        }
    });
});

【问题讨论】:

  • 能不能把html加进去改成可以运行的代码sn-p?
  • @Jester here 是我的测试页面是已经设置的功能。选择 'table of 10' 选项,添加到购物车,进入购物车,你会看到数量是 1 而不是 10。

标签: javascript php jquery wordpress woocommerce


【解决方案1】:

很难用周围的所有 wordpress/woocommerce 代码进行调试, 不过我想我已经找到了问题所在。

您不仅将值更改为 10,而且还禁用了阻止提交它的元素。而不是禁用你应该让它只读:

jQuery(function($) {
    $('form').on('change', '#purchase', function(){
        if($(this).val()=="Table of 10") {
            $('input[type="number"]').val("10").prop('readonly', true);
        }
    });
});

当心!这确实可以防止大多数用户输入更少的内容,但有代码经验的人可以检查代码,删除只读或禁用标签,然后更改值。您必须检查服务器端的无效值。

【讨论】:

  • 嗯,我仍然在购物车页面上使用 readonly 获得 '1' 数量
  • 如果我检查代码,在我将选项更改为 10 表后它仍然被禁用。如果我手动将其更改为只读然后提交它对我有用。在应用更改后尝试检查元素是否确实正确执行,或者其他一些 woocommerce 代码仍在禁用它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-06-17
  • 2021-08-04
  • 1970-01-01
  • 1970-01-01
  • 2014-04-20
  • 2016-09-28
  • 2021-07-25
相关资源
最近更新 更多