我要让用户使用Google地图为自己的帖子添加地址。
如果用户没有为地图输入任何内容或输入奇怪的特殊字符(#$!@#),它会崩溃网站并给我这个错误:
var lat = data.results[0].geometry.location.lat;
^
TypeError: Cannot read property 'results' of undefined
我正在尝试找出在提交表单时检查此错误的方法。到目前为止,我没有运气。是否可以检查此错误?
我已经看过这样的代码,但未定义的所有内容,我不确定如何在这种情况下定义它,坦率地说,我不确定下面的代码是如何运行的。
if (status == google.maps.GeocoderStatus.OK) {
var lat = results[0].geometry.location.lat();
var lon = results[0].geometry.location.lng();
searchStores(lat, lon);
} else {
$addressErrorP.removeClass('hide');
}
感谢您的帮助!
答案 0 :(得分:1)
想出来:简单而且效果很好。
第1步:确保它在您的页面上。
<script type="text/javascript" src="https://maps.google.com/maps/api/js?sensor=false"></script>
然后
$("#checkingAddress").click(checkGeocode);
function checkGeocode(){
var addr = document.getElementById("location");
// Get geocoder instance
var geocoder = new google.maps.Geocoder();
// Geocode the address
geocoder.geocode({'address': addr.value}, function(results, status){
if (status === google.maps.GeocoderStatus.OK && results.length > 0) {
alert('looks good')
// set it to the correct, formatted address if it's valid
addr.value = results[0].formatted_address;;
// show an error if it's not
}else alert("Invalid address");
});
};