У меня есть форма для получения адреса от пользователя и отправка этого адреса на мой сервер. Цель состоит в том, чтобы использовать геокодирование Google, чтобы гарантировать уникальность и геокодирование адреса до того, как он будет беспокоить его.jquery submit * после * сторонняя проверка ajax
Я могу успешно связать form.submit, geocode, получить мои метки, заверить, что они уникальны или нет .. но я совершенно неспособен сделать работу отправки в моем обратном вызове. Это заставляет меня думать, что я не должен делать это в своем обратном вызове, но именно поэтому я здесь.
В принципе, мне нужен способ отправки на вызов формы моей проверки, которая вызывает обратный вызов - если/когда этот обратный вызов будет успешным, обратный вызов должен иметь возможность отправить форму (а не сообщение AJAX, спасибо), не возобновив проверку.
Pseudocode следует, напечатанный из памяти. Я пробовал использовать оба параметра .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>
Макс, не будет ваш ответ занят, подождите одну истинную яваскрипт нити? Что делать, если у меня есть другие события? Да, предполагается, что вызов геокодирования длится долго. Во всяком случае, мне нравится этот ответ, но я хотел бы понять, какой эффект от его использования будет. – Maas
На самом деле, я говорил слишком рано. Мне нравится этот ответ, потому что он дал четкий способ обработки альтернативных ответов от обратного вызова. Однако, как написано, он убивает обработку javascript на Safari, как и ожидалось. – Maas