2017-09-20 21 views
-2

我找到一種方式來顯示用戶錯誤如果用戶沒有從谷歌自動完成列表中選擇城市。有沒有辦法找到它?如何顯示錯誤,如果用戶沒有選擇從谷歌地圖自動完成的城市

目前我使用下面的代碼爲autocomplete

var txt_frm_addmarker_city = document.getElementById('frm_addmarker_city'); 

var city_autocomplete_options = { 
    language: 'it-IT', 
    types: ['(cities)'], 
    componentRestrictions: {country: "it"} 
}; 

var autocomplete_txt_frm_addmarker_city = new google.maps.places.Autocomplete(txt_frm_addmarker_city, city_autocomplete_options); 

// Add Marker form:: Get Position of Place (City) 
google.maps.event.addListener(autocomplete_txt_frm_addmarker_city, 'place_changed', function() { 
    var place = autocomplete_txt_frm_addmarker_city.getPlace(); 
    if ('undefined' != typeof place.geometry) { 

     var lat = place.geometry.location.lat(), 
      lng = place.geometry.location.lng(); 

     var randomGeoPoints = generateRandomPoints({'lat':lat, 'lng':lng}, 5000, 1); 

     jQuery("input[name='latitude']").val(randomGeoPoints[0].lat); 
     jQuery("input[name='longitude']").val(randomGeoPoints[0].lng);   
    } 
    else { 
     alertMagnificPopup("Error"); 
    } 
}); 

所以基本上我希望用戶從只有谷歌自動完成選擇城市。我不希望用戶在城市字段中輸入XYZ。那麼是否有任何方法向用戶顯示錯誤,並且不允許繼續進行?

+0

在其他部分,在那裏你有alertMagnificPopup(「錯誤」);做一些清除文本框的功能。 – Liquidchrome

回答

0

您可以使用一個標誌變量這裏確認,如:

var isOptionSelected = false; 

google.maps.event.addListener(autocomplete_txt_frm_addmarker_city, 'place_changed', function() { 
    isOptionSelected = true; 
    // your map option select logic here 
}); 

// On submit button click you can verify that 
document.getElementById("submitForm").addEventListener("click", function(){ 
    if (!isOptionSelected){ 
     alert('Please select an option from autocomplete'); 
     return; // skip an further form processing logic 
    } 

    // Reset the flag state here 
    isOptionSelected = false; 

    // Now, continue with your logic 
}); 
相關問題