У меня есть форма для получения адреса от пользователя и отправки этого адреса на мой сервер. Цель состоит в том, чтобы использовать геокодирование Google, чтобы убедиться, что адрес является уникальным и геокодируемым, прежде чем связывать его с сервером.
Я могу успешно связать form.submit, geocode, получить свои метки, убедиться, что они уникальны или нет ... но я совершенно не могу заставить отправлять работу в моем обратном вызове. Это заставляет меня думать, что я не должен делать это в моем обратном вызове, но именно поэтому я здесь.
По сути, мне нужен способ отправки в форме вызова моей проверки, который запускает обратный вызов - если / когда этот обратный вызов успешен, обратный вызов должен иметь возможность отправить форму (не сообщение AJAX, спасибо ) без повторного запуска проверки.
Далее следует псевдокод, набранный из памяти. Я пробовал оба .unbind ('submit'). Submit () и вызов DOM submit напрямую, но не сработало, но я включаю их обоих здесь, к черту .
<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>