![](/img/trans.png)
[英]Google places api for javascript autocomplete restrict to suggestions
[英]google places automplete only suggestions with stress number
我正在與 googles api 位置合作以獲取地址自動完成建議。 這是我的簡單工作代碼:
<!DOCTYPE html>
<html>
<body>
<form>
<input id="customerAddress" name="customerAddress" required autocomplete="off" />
<input id="zip" name="zip" required readonly />
<input id="city" name="city" required readonly />
</form>
<script
src="https://maps.googleapis.com/maps/api/js?key=MY_API_KEY&callback=initAutocomplete&libraries=places"
async
></script>
<script>
let autocomplete;
function initAutocomplete() {
autocomplete = new google.maps.places.Autocomplete(document.querySelector("#customerAddress"), {
componentRestrictions: { country: ["de", "DE"] },
fields: ["address_components", "geometry"],
types: ["address"],
});
autocomplete.addListener("place_changed", fillInAddress);
}
function fillInAddress() {
const place = autocomplete.getPlace();
var address = ""
var streetNumber = ""
for (const component of place.address_components) {
const componentType = component.types[0];
switch (componentType) {
case "route": {
address = component.long_name;
break;
}
case "street_number": {
streetNumber = component.long_name
break;
}
case "postal_code": {
document.querySelector("#zip").value = component.long_name;
break;
}
case "locality":
document.querySelector("#city").value = component.long_name;
break;
}
}
document.querySelector("#customerAddress").value = address +" "+streetNumber
}
</script>
</body>
</html>
現在我會意識到以下情況:
客戶應該將他的地址寫入“customerAddress”字段以獲取建議,但地址必須包含街道號碼。 我怎樣才能限制這個?
如果客戶從自動完成列表中選擇了建議,則只能提交表單。 如果他/她手動寫了一個地址,該地址不是來自自動完成列表,則必須是一個錯誤
好吧,我認為最好的解決方案是有單獨的隱藏輸入,您可以在其中放置要對其運行驗證的選定地址,如果未定義,則只需返回錯誤即可。
至於有街道號碼,您還可以運行所選地點的驗證。 如果它選擇了類型street_number
它是有效的,否則它不是。
我不確定您是否可以禁用 Google 以將搜索結果限制為僅包含街道號碼的地址。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.