【发布时间】:2009-12-10 12:06:01
【问题描述】:
我正在使用 jQuery 表单插件在提交表单之前调用一个函数。 该函数调用 google geocoder 服务,查找地址的坐标,并在表单中设置隐藏坐标字段的值。 似乎在 beforeSubmit 回调完成之前提交了表单。这正常吗?表单不应该等待 beforeSubmit 回调完成吗? 最好的方法是什么?
谢谢
javascript
$(function(){
$("#submit").click(function() {
var options = {
beforeSubmit: getPosition, // pre-submit callback
success: showResponse // post-submit callback
};
// bind form using 'ajaxForm'
$('#addresto').ajaxForm(options);
});
});
function getPosition() {
var geocoder = new GClientGeocoder();
var country = $("#id_country").val();
var city = $("#id_city").val();
var postal_code = $("#id_postal_code").val();
var street_number = $("#id_street_number").val();
var street = $("#id_street").val();
var address = street_number+", "+street+", "+postal_code+", "+city+", "+country;
geocoder.getLatLng( address, function(point) {
if (point) {
alert(point);
$("#id_latitude").val(point.lat())
$("#id_longitude").val(point.lng())
} else {
alert("Geocode was not successful");
}
});
return true;
}
function showResponse() {
alert('response');
}
HTML
<form id="addresto" action="" method="POST">
<!-- some city, country, street... fields -->
<input type="Submit" id="submit" value="Submit" />
</form>
【问题讨论】: