我有一个表格可以从用户那里获取地址,然后将该地址发送到我的服务器。目标是使用 Google 的地理编码来确保地址是唯一的且可进行地理编码,然后再打扰服务器。
我可以成功绑定 form.submit,地理编码,获取我的地标,确保它们是唯一的。但我完全无法在我的回调中进行提交工作。这让我觉得我不应该在回调中这样做,但这就是我在这里的原因。
基本上,我需要一种方法来提交表单调用我的验证,这会触发回调——如果/当该回调成功时,回调需要能够提交表单(不是 AJAX 帖子,谢谢)而不触发再次验证。
伪代码如下,从内存中输入。我已经尝试过 .unbind('submit').submit() 和直接调用 DOM 提交,但都不起作用,但我将它们都包括在这里是为了它的地狱。
<html>
<head>
<!-- .. load google maps and jquery .. -->
<script type="text/javascript">
$(document).ready(function() {
// ... insure Google, get geocoder, etc.
geocoder = ...;
function geocodeCallback(result) {
// .. check if result was a success, and unique
if (.. yes, success ..) {
// use my not-included snazzy function to normalize the address
$('#loc').val(normalize(result.Placemark[0]));
$('#myform').unbind('submit');
$('#myform')[0].submit(); // see note above
} else {
// do something magically useful
}
}
$('#myform').bind('submit', function() {
geocoder.getLocations($('#loc').val(), geocodeCallBack);
return false;
});
});
</script>
</head>
<body>
<form id="myform" method="post" action="thispage.html">
<input type="text" name="loc" />
<input type="submit" name="sub" value="Submit" />
</form>
</body>
</html>