簡體   English   中英

谷歌僅自動完成帶有壓力數字的建議

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM