【发布时间】:2019-03-03 04:09:09
【问题描述】:
情况:我在 Wordpress WooCommerce 商店中有一堆可变产品。在前端有一个带有多个选择输入的表单,允许用户在将产品添加到购物车之前对其进行配置。价格和其他信息会因可能的变化而变化,因此我需要跟踪这一点。
目标:用户更改表单后,Woocommerce 将使用新选择的变体的 ID 更新隐藏字段 input.variation_id。每当这种情况发生变化时,我都想知道。
显然,有一些东西可以跟踪变化,效果很好:
$( ".variations_form" ).on( "woocommerce_variation_select_change", function () {
console.log('form has changed'); // fires correctly
} );
我还能够读取该隐藏字段的值,在它被更改之前:
var id = $('input.variation_id').val();
console.log( id ); // returns correct value
问题:但是当我尝试调用该函数内部的值时,我将无法工作。
$( ".variations_form" ).on( "woocommerce_variation_select_change", function () {
var id = $('input.variation_id').val();
console.log( id ); // fires, but returns empty
} );
我已经尝试了所有想到的东西。如果我直接在浏览器控制台中输入它,它可以工作,但是当我尝试使用上面的函数获取它时,它是空的。我能做什么?
我之前曾与 $('form.variations_form select').change(...); 合作过,但它会弄乱变化,我想确保 Woocommerce 在我执行操作之前已更新所有信息。
【问题讨论】:
标签: jquery forms woocommerce variations