我在这个简短的教程中添加了邮政信箱过滤:
本质上,这只是调用我的控制器,在“street1”和“street2”字段上进行 preg_match,并在输入邮政信箱地址时发出警报,否则它只是调用 shipping.save() 并进入下一步。
问题是,如果用户保存了邮政信箱地址(这不是默认地址),当您选择备用地址(使用邮政信箱)时,隐藏的表单字段不会更新为所选地址,并且不会调用邮政信箱验证。
为了解决这个问题,我在选择元素更改时触发 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 专业版 - 1.11.1.0