フォームsubmit()からデータを取得する必要がある状況があります。私はアクションのURLと入力要素として送信される値を与えました。送信はREST Webサービスに送信されます。ajaxForm非同期呼び出し
通常のform.submit()では実行できない値を取得したいので、ajaxForm()呼び出しを使用しなければなりませんでした。私は、成功オプションについて言及したハンドラは、RESTメソッドが正常に終了した後に呼び出されると考えます。私はまた、呼び出しを完了し、次に進むだけで、async:falseオプションを与えました。
私の問題は、ハンドラが他のコードの後に実行されるということです。つまり、ajax呼び出しが実行された後にコードがコールされた後、ハンドラが実行された後です。私は非同期を与える場合、これは正しくありません:false right ??
これはあなたの参照のための私のコードです:サーバコンソールに
<form id="form4" action="http://comp1:8080/RestWSGS/jersey/ExcelHtmlTablePlain" style="display:none"
enctype="multipart/form-data" method="post">
<input id ="username" name="username" type="hidden" />
<input id ="wbk" name="wbk" type="hidden" value="new" />
<input type="submit" style="display:none" />
</form>
$(function() {
$('#form4').submit();
alert(tbLHSString);
}
function showResponse(responseText, statusText, xhr, $form) {
if (xhr.readyState == 4) {
tbLHSString = responseText;
}
alert('status: ' + statusText + '\n\nresponseText: \n' + responseText + '\n\nThe output div should have already been updated with the responseText.');
executed == true;
}
私はRESTが完全に実行されることがわかります。しかし、私は変数を定義されていないものとして取得し、その後、showResponseからの警告が発生します。
この呼び出しを同期させるのを手伝ってください!!! Kavita
私はそれを実行しましたが、async:falseを指定してajaxFormへの同期呼び出しが非同期的に動作しないことを意味します。私はshowresponseで変数を初期化して試してみましたが、値が設定されていれば進めます。しかし、それはループに入れて...とにかく感謝!!幸いなことに、コードはそれほど多くありませんでした! – kavita
@kavita: 'async:false'プロパティは他の発信HTTPリクエストにのみ影響し、JavaScript自体の継続的な実行には関係しません。したがって、 'async:false'を使用した場合、' submit'の直後に 'alert'を呼び出すことになりますが、2つのサブミットがある場合(say)、' showResponse'の最初の呼び出し常に 'submit'への最初の呼び出しに対する応答でした。 –
ok greatは何か新しいことを学んだ!ありがとう – kavita