gpt4 book ai didi

javascript - Magento - opcheckout.js - 在结帐期间手动调用 setAddress()

转载 作者:行者123 更新时间:2023-11-30 13:12:57 28 4
gpt4 key购买 nike

我根据这个简短的教程添加了邮政信箱过滤:

http://inchoo.net/ecommerce/magento/prevent-po-boxes-in-shipping-address-field-on-checkout/comment-page-1/#comment-35117

本质上,这只是调用我的 Controller ,在“street1”和“street2”字段上执行 preg_match,如果输入邮政信箱地址会发出警报,否则它只会调用 shipping.save() 并转到下一个步骤。

问题是,如果用户保存了邮政信箱地址(这不是默认地址),当您选择备用地址(使用邮政信箱)时,隐藏的表单字段不会更新为所选地址地址,并且不会调用邮政信箱验证。

为了解决这个问题,我在更改 select 元素时触发 shipping.setAddress(value):

jQuery("#shipping-address-select").change(function(){
var value = jQuery("#shipping-address-select option:selected").val();
shipping.setAddress(value);
});

这几乎完全按预期工作,它将地址设置为我所期望的,一切都很美好;然而,这里出现的一个小故障是在调用 shipping.setAddress(value)(执行 ajax 调用)之后,选择元素会在我选择了一个实际地址后自动显示“新地址”选项。这纯粹是一个视觉故障,因为使用了正确的地址,但显示“新地址”会让用户感到困惑。

有没有一种方法可以在不修改 opcheckout.js(Shipping 类和 setAddress() 位所在的位置)中的任何内容的情况下解决这个问题?

-- 编辑--这是 Magento Professional - 1.11.1.0

最佳答案

虽然这肯定不是最佳解决方案,但与此同时我不得不求助于使用以下方法手动更新隐藏的表单字段:

jQuery("#shipping-address-select").on('change',function(){
var address = jQuery("#shipping-address-select option:selected").html().split(', ');
jQuery("#shipping\\:street1").val(address[1]);
jQuery("#shipping\\:street2").val(address[2]);
});

我为这段代码感到骄傲。/讽刺。

关于javascript - Magento - opcheckout.js - 在结帐期间手动调用 setAddress(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13236413/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com