有没有办法验证用户输入的街道地址是否带有 Google 自动完成功能?

Is there a way to validate if a user types a street address with Google autocomplete?

在我的注册表单中,我有一个字段要求用户输入 his/her 地址和城市(自动完成)。

问题是用户也可以只输入 his/her 城市而不输入街道并提交表格。

有人对此有解决方案吗?

<script>
  var input = document.getElementById('adres');
  var autocomplete = new google.maps.places.Autocomplete(input,{componentRestrictions: {country:'be'}});
  google.maps.event.addListener(autocomplete, 'place_changed', function(){
  var place = autocomplete.getPlace();
  })
</script>

我很好奇,你要求对方输入完整的地址,还是你在各个字段中分开?比如一个用于街道,另一个用于州、城市等,还是只是一个字段?

如果您要求输入地址,而人们一直只输入城市,例如,将其分成两个输入,一个输入地址名称,另一个输入号码,您可以要求输入邮政编码。重要的是让他们知道他们需要正确添加地址。

您还可以进行验证,在字段中您可以输入 "Address must have a '#'" 以确保有门牌号(Idk,最后一个是示例)

您可以使用 autocomplete.setTypes(['address']); 只允许自动完成中的地址。

A city 不是地址(它是一个区域),因此自动完成将不允许它。

var input = document.getElementById('adres');
var autocomplete = new google.maps.places.Autocomplete(input,{componentRestrictions: {country:'be'}});
autocomplete.setTypes(['address']);
google.maps.event.addListener(autocomplete, 'place_changed', function(){
    var place = autocomplete.getPlace();
})