2017-09-20 28 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 
}); 
相关问题