当用户开始输入地址时自动预填邮政编码
automatically prefill zip code when user starts entering address
如何添加邮政编码?它找到了我需要的一切,除了我唯一无法弄清楚的是如何添加邮政编码以在用户开始输入地址时自动预填充。
http://jsfiddle.net/DXkZJ/1/
$(function () {
var lat = 44.88623409320778,
lng = -87.86480712897173,
latlng = new google.maps.LatLng(lat, lng),
image = 'http://www.google.com/intl/en_us/mapfiles/ms/micons/blue-dot.png';
//zoomControl: true,
//zoomControlOptions: google.maps.ZoomControlStyle.LARGE,
var mapOptions = {
center: new google.maps.LatLng(lat, lng),
zoom: 13,
mapTypeId: google.maps.MapTypeId.ROADMAP,
panControl: true,
panControlOptions: {
position: google.maps.ControlPosition.TOP_RIGHT
},
zoomControl: true,
zoomControlOptions: {
style: google.maps.ZoomControlStyle.LARGE,
position: google.maps.ControlPosition.TOP_left
}
},
map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions),
marker = new google.maps.Marker({
position: latlng,
map: map,
icon: image
});
var input = document.getElementById('searchTextField');
var autocomplete = new google.maps.places.Autocomplete(input, {
types: ["geocode"]
});
autocomplete.bindTo('bounds', map);
var infowindow = new google.maps.InfoWindow();
google.maps.event.addListener(autocomplete, 'place_changed', function (event) {
infowindow.close();
var place = autocomplete.getPlace();
if (place.geometry.viewport) {
map.fitBounds(place.geometry.viewport);
} else {
map.setCenter(place.geometry.location);
map.setZoom(17);
}
moveMarker(place.name, place.geometry.location);
$('.MapLat').val(place.geometry.location.lat());
$('.MapLon').val(place.geometry.location.lng());
});
google.maps.event.addListener(map, 'click', function (event) {
$('.MapLat').val(event.latLng.lat());
$('.MapLon').val(event.latLng.lng());
infowindow.close();
var geocoder = new google.maps.Geocoder();
geocoder.geocode({
"latLng":event.latLng
}, function (results, status) {
console.log(results, status);
if (status == google.maps.GeocoderStatus.OK) {
console.log(results);
var lat = results[0].geometry.location.lat(),
lng = results[0].geometry.location.lng(),
placeName = results[0].address_components[0].long_name,
latlng = new google.maps.LatLng(lat, lng);
moveMarker(placeName, latlng);
$("#searchTextField").val(results[0].formatted_address);
}
});
});
function moveMarker(placeName, latlng) {
marker.setIcon(image);
marker.setPosition(latlng);
infowindow.setContent(placeName);
//infowindow.open(map, marker);
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://maps.google.com/maps/api/js?libraries=places®ion=uk&language=en&sensor=true"></script>
Address:
<input id="searchTextField" type="text" size="50" style="text-align: left;width:357px;direction: ltr;">
<br>
latitude:<input name="latitude" class="MapLat" value="" type="text" placeholder="Latitude" style="width: 161px;" disabled>
longitude:<input name="longitude" class="MapLon" value="" type="text" placeholder="Longitude" style="width: 161px;" disabled>
<div id="map_canvas" style="height: 350px;width: 500px;margin: 0.6em;"></div>
您可能想看看此示例的fillInAddress()
方法。除其他详细信息外,它还将更新文档中的postal_code
输入字段。
可能最相关的是 fillInAddress()
for 循环中的if
语句:
if (componentForm[addressType]) {
var val = place.address_components[i][componentForm[addressType]];
document.getElementById(addressType).value = val;
}
当 place.address_components[i]
等于 "postal_code" 时,它将继续将 place.address_components[i][componentForm[addressType]]
的值放在名为 val
的 var 中。这将返回邮政编码的short_name
。
相关文章:
- 后焦点更改为IE 11中的地址栏,而不是转移到表单中的下一个控件
- 使用正则表达式评估电子邮件地址时出现性能问题
- 跟踪用户点击Adsense广告的IP地址
- 将谷歌自动完成地址信息放在页面上,而不是表格中
- 使用API在我的网站Google-Map上显示搜索地址的纬度和经度
- 地址栏中url的缩短
- 需要比特币校验地址和json帮助
- XSS通过地址栏注入
- 动态代码中存在系统应用程序地址错误
- 根据部门用户的选择,接收来自多个电子邮件地址的Wordpress Contactform7查询
- 用于更改IP地址的输入框
- 电子邮件地址验证但创建帐户,即使电子邮件地址无效
- 帐单地址与发货地址jQuery相同
- 英国邮政编码谷歌API不返回街道地址
- 通过将鼠标悬停在距离矩阵上然后轻拔输入地址和邮政编码来更改输入地址和邮政编码
- 当用户开始输入地址时自动预填邮政编码
- 如果地址、邮政编码和城市位于不同的输入字段中,我如何进行地理定位
- 反向地理编码:我想要地址,而不是邮政编码
- 根据 IP 地址更新状态和邮政编码
- 当用户输入邮政编码时,如何动态地在另一个文本框中填充地址?