更改 Loqate 地址验证控制的国家/地区
Change Country for Loqate Address Verification Control
我成功地使用了 Loqate Address Verfication 控件,并将其地址结果过滤到单个国家/地区,在 select
控件中选择。
但是,当 select
中的国家/地区代码更改时,我无法更改 Loqate 地址服务中的国家/地区过滤器以使用更新后的值。
var addressControl;
var avOptions = { suppressAutocomplete: false, setCountryByIP: false };
$(function () {
addressControl = initialiseAddressValidation();
});
$("#CountryCode").change(function () {
if (addressControl) {
addressControl.destroy();
addressControl = null;
}
addressControl = initialiseAddressValidation();
});
function initialiseAddressValidation() {
avOptions.key = $("#avKey").val();
avOptions.countries = { codesList: $("#CountryCode").val() };
//other config truncated
}
Loqate 的文档建议我调用 select
更改的 .destroy() 方法应该删除控件,我尝试将其设置为 null
,然后使用新的国家代码值,但它的地址结果 returns 仍然是原始国家/地区是在加载时初始化的。
有谁知道如何在不完全重新加载页面的情况下为 Loqate 地址验证程序设置新的国家/地区过滤器?
我的工作解决方案,基于@SlapdashFox 的宝贵帮助。这样做是为了避免每次更改国家/地区时都必须完全重新创建控件
$("#CountryCode").change(function () {
if (addressControl) {
addressControl.options.search.countries = $("#CountryCode").val();
} else {
addressControl = initialiseAddressValidation();
}
});
您似乎在此处更改了错误的值,您想更改选项对象中的 search.countries
属性。
在您上面的示例中,您可以按如下方式执行此操作:
function initialiseAddressValidation() {
avOptions.key = $("#avKey").val();
avOptions.search = { countries: $("#CountryCode").val() };
}
我成功地使用了 Loqate Address Verfication 控件,并将其地址结果过滤到单个国家/地区,在 select
控件中选择。
但是,当 select
中的国家/地区代码更改时,我无法更改 Loqate 地址服务中的国家/地区过滤器以使用更新后的值。
var addressControl;
var avOptions = { suppressAutocomplete: false, setCountryByIP: false };
$(function () {
addressControl = initialiseAddressValidation();
});
$("#CountryCode").change(function () {
if (addressControl) {
addressControl.destroy();
addressControl = null;
}
addressControl = initialiseAddressValidation();
});
function initialiseAddressValidation() {
avOptions.key = $("#avKey").val();
avOptions.countries = { codesList: $("#CountryCode").val() };
//other config truncated
}
Loqate 的文档建议我调用 select
更改的 .destroy() 方法应该删除控件,我尝试将其设置为 null
,然后使用新的国家代码值,但它的地址结果 returns 仍然是原始国家/地区是在加载时初始化的。
有谁知道如何在不完全重新加载页面的情况下为 Loqate 地址验证程序设置新的国家/地区过滤器?
我的工作解决方案,基于@SlapdashFox 的宝贵帮助。这样做是为了避免每次更改国家/地区时都必须完全重新创建控件
$("#CountryCode").change(function () {
if (addressControl) {
addressControl.options.search.countries = $("#CountryCode").val();
} else {
addressControl = initialiseAddressValidation();
}
});
您似乎在此处更改了错误的值,您想更改选项对象中的 search.countries
属性。
在您上面的示例中,您可以按如下方式执行此操作:
function initialiseAddressValidation() {
avOptions.key = $("#avKey").val();
avOptions.search = { countries: $("#CountryCode").val() };
}