0

我的剧本很难。基本上我让它从输入框中读取一个国家代码,然后将它用作谷歌地图位置自动建议的国家过滤器。此代码有效,可以在这里看到:

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);

如果在上面的国家输入框中找到一个国家限制过滤器,谁能帮我弄清楚如何设置一个国家限制过滤器?

4

1 回答 1

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); 

小提琴

于 2013-06-10T14:44:15.627 回答