如果用户检查帐单邮寄地址与送货地址相同,则必须复制帐单邮寄地址中的所有数据。填写送货地址。
在下拉列表中,首先是国家和地区。关于第二次下拉中相关国家负荷的变化。当用户检查"相同的地址"事情,比我打电话
$('#payment_shipping_country').val($('#payment_country').val()).change()
表示选择billing_country&将它放在shipping_country中,而不是调用将在shipping_state和
中加载状态的更改$('#payment_shipping_state').val($('#payment_state').val()).change();
选择在billing_state中选择的shipping_state。
问题是,在加载shipping_states之前,此选择送货状态会调用。它加载shipping_states但是当选择相同的shipping_state的代码已经运行时。
我尝试过多种解决方案,比如
$.when($('#payment_shipping_country').val($('#payment_country').val()).change()).then(function() {
$('#payment_shipping_state').val($('#payment_state').val()).change();
});
但它永远不会等待运输状态加载。
答案 0 :(得分:0)
要使其工作,您需要访问通过调用$ .ajax创建的承诺。实现此目的的一种方法是从执行ajax请求的change事件的处理程序返回promise,然后触发该处理程序,以便您可以访问其上的promise和chain。
$('#payment_shipping_country').change(function () {
// stuff...
return $.ajax({/*... ajax settings ...*/});
})
稍后,
$('#payment_shipping_country').val($('#payment_country').val())
.triggerHandler('change').then(function () {
/* it's done! */
})