我的剧本很难受。基本上我从输入框中读取country_code,然后使用它作为谷歌地图的国家过滤器放置autosuggest。这段代码可以在这里看到:
http://jsfiddle.net/spadez/5dqHg/23/
它从此字段中提取国家/地区代码:
<input class="hidden" id="#ctry" disabled="true" value="us"></input>
我的问题是这个字段并不总是被设置,所以当它不是我有这个:
<input class="hidden" id="#ctry" disabled="true" value=""></input>
但这会打破自动提示,实际上它不应该将国家过滤器应用于自动提示并显示来自每个国家/地区的地点。
我想在sudo代码中我需要这样的东西:
var ctryiso = $("#ctry").val();
autocomplete = new google.maps.places.Autocomplete(input[0], {
types: ["geocode"],
<if ctryiso !=null then>
componentRestrictions: {
country: ctryiso
}
</if>
});
我也试过这项技术但没有取得任何成功:
if (ctryiso) { options.componentRestrictions= { 'country': ctryiso }; }
var autocomplete = new google.maps.places.Autocomplete(input, options);
任何人都可以帮我弄清楚如果只有国家限制过滤器,如果在上面的国家/地区输入框中找到了一个?
答案 0 :(得分:1)
您可以使用选项变量并在条件检查后传入。
var ctryiso = $("#ctry").val();
var options;
if(ctryiso != ''){
options = {
types: ["geocode"],
componentRestrictions: {
country: ctryiso
}
}
}else{
options = {types: ["geocode"]}
}
autocomplete = new google.maps.places.Autocomplete(input[0], options); // <-- pass in the options
你可以将它压缩到这个..
var ctryiso = $("#ctry").val();
var options = {
types: ["geocode"]
};
if(ctryiso != ''){
options.componentRestrictions= { 'country': ctryiso };
}
autocomplete = new google.maps.places.Autocomplete(input[0], options);