【发布时间】:2013-10-09 19:28:03
【问题描述】:
我使用了一个 before submit 钩子以便在提交之前运行一些 javascript。因此我使用以下代码:
jQuery(function() {
jQuery('#setup-form').submit(function(e) {
codeAddress();
return true;
});
});
函数codeAddress() 用数据填充两个隐藏的输入字段。数据实际上已填充(填充到 value 属性中)。但是在服务器端没有数据到达。这里有什么问题?
仅供参考:
function codeAddress() {
var address = document.getElementById('address').value;
if(address){
geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var location = results[0].geometry.location;
var location2 = '' + location;
location2 = location2.slice(1, location2.length - 1).split(', ');
jQuery('#geo-lat').attr('value', location2[0]);
jQuery('#geo-long').attr('value', location2[1]);
map.setCenter(location);
var marker = new google.maps.Marker({
map: map,
position: location
});
} else {
alert('Geocode was not successful for the following reason: ' + status);
}
});
}
}
【问题讨论】:
-
geocoder.geocode 是异步的。您必须延迟提交表单,直到获得结果(或将提交处理程序传递给 codeAddress,这将在收到结果时触发表单提交)
标签: jquery forms input submit hidden-field