非同期イベント後にフォームを送信し、キューに入ったイベントを呼び出すトラブルを受ける
-
11-12-2019 - |
質問
これはローカルセットアップ(jQuery.1.6.4を使用する)で作業していますが、DEVセットアップ(jQuery.1.3.2)には機能していません。
次の形式を考慮してください -
<form onsubmit="return validateMacros();">
<input id="formsubmitbutton" type="submit" name="formsubmitbutton" value="Submit" />
</form>
.
上記のvalidateMacros();
呼び出しを注意してください。
と次のJavaScript -
jQuery(document).ready(function()
{
$("input#formsubmitbutton").click(preValidateUrls);
function preValidateUrls(evt)
{
evt.preventDefault(); //to prevent form submission until completion of async event
$.ajax({
...
...
success: function(res)
{
$("form#frmBanners").submit(); //This submits the form in case of both versions but in 1.3.2 case, the validateMacros() function is not called
}
});
}
});
function validateMacros()
{
//some logic here - which is not executing in case of jquery.1.3.2
}
.
jQuery.1.6.4がロードされている場合、関数validateMacros()
は、希望するpreValidateUrls()
の実行完了後に実行されます。
しかしjQuery.1.3.2がロードされている場合、validateMacros()
はまったく実行されず、フォームは送信されます。
どのようにして両方のバージョンで作業していますか。私は何を間違っていますか?
解決
目立たない!
$('form#frmBanners').on('submit', validateMacros);
.
ここでやっていることは、加入していますフォームのsubmit
イベントへの関数は、IDを与えた後(例としてfrmBanners
を使用していました)。対話不可の手段は、HTMLにJavaScriptを入れていないことを意味します。これはjQueryのようなライブラリの主な目的です。そのため、外部のJavaScriptファイル内の任意の場所に、上記の行が含まれています。送信ボタンをクリックすると、フォームが送信ボタンをクリックすると、関数が呼び出されます。
だから、$("form#frmBanners").submit();
を呼び出すと、イベントが発生し、関数が呼び出されます。これは、これらの種類のイベントを発射する限り、条約に近いステップです。
所属していません StackOverflow