いくつかの関数を含む PHP ファイルを (wordpress プラグインの一部として) 使用しています。
そのうちの 1 つは html フォームを作成し、もう 1 つは送信されたフォームを処理します。
フォームをビルドするsubmit()
関数に、非同期関数を呼び出す関数を追加しました。
フォームが送信される前に終了するために、非同期関数が終了したときのpreventDefault()
呼び出しを使用しています。
問題は、afterを呼び出すと、送信されたフォームを処理する PHP 関数で、元の送信とは異なる結果が生じることです。 submit()
submit()
preventDefault()
PHPコードは次のとおりです。
if(isset($_POST['submit-reg']))
{
$output = sreg_process_form($atts);
return $output;
}
else
{
$data = array();
$form = simplr_build_form($data, $atts);
return $form;
}
使用せずpreventDefault()
、submit()
状態が良好で、フォームが正常に送信された場合。
それらを使用すると、2番目の部分が実行され、フォームが送信される代わりに再構築されます。
問題は次のとおりです。何が原因で false になり、どうすれば修正できますかpreventDefault()
?
編集:これがJSです:submit()
isset($_POST['submit-reg']))
$('#simplr-reg').submit(function(event)
{
event.preventDefault();
codeAddress(function(success){}); //callback from googlemaps
});
function codeAddress(callback)
{
var geocoder = new google.maps.Geocoder();
geoCodingStarted = true;
geocoder.geocode( { 'address': address}, function(results, status)
{
if (status == google.maps.GeocoderStatus.OK)
{
var latitude = results[0].geometry.location.lat();
var longitude = results[0].geometry.location.lng();
$("input[name=latitude]").val(latitude);
$("input[name=longitude]").val(longitude);
$('#simplr-reg').submit();
}
});
} // end of code address