ユーザーからアドレスを取得し、そのアドレスをサーバーに送信するフォームがあります。目標は、サーバーに迷惑をかける前に、Google のジオコーディングを使用して、アドレスが一意でジオコーディング可能であることを確認することです。
form.submit、ジオコードを正常にバインドし、目印を取得し、それらが一意であるかどうかを確認できます..しかし、コールバックで送信を機能させることはまったくできません。これは、コールバックでそれを行うべきではないと思いますが、それが私がここにいる理由です。
基本的に、フォームで送信して検証を呼び出し、コールバックをトリガーする方法が必要です-そのコールバックが成功した場合、コールバックはトリガーせずにフォームを送信できる必要があります(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>