【发布时间】:2011-12-06 05:25:23
【问题描述】:
我有这个在提交表单时触发的代码:
$("form").submit(function (e) {
var geocoder = new google.maps.Geocoder();
var address = document.getElementById("Address").value;
geocoder.geocode({ 'address': address }, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
$("#LatitudeLongitude").val(results[0].geometry.location);
$("form").submit();
} else {
alert("Geocode was not successful for the following reason: " + status);
}
});
$('form').unbind('submit');
return false;
});
它的作用:它调用谷歌地理编码服务将地址转换为设置在表单隐藏字段中的纬度/经度。如果有结果,则提交表单。
问题在于,如果验证失败(例如未设置必填字段),则仍会调用地理编码。而且,如果我再次点击提交按钮,即使没有设置必填字段,表单也会被发布。
只有在不显眼的验证成功后,如何才能调用地理编码服务?
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-3 validation unobtrusive-validation