送信ボタンでJavaScriptを使用しようとしています。送信ボタンを押すと、コールバック ハンドラ h を使用してリモート コールバックを行うルーチンを実行します。h の結果に基づいて、送信を続行するか、デフォルトを防止してページにとどまるかを決定します。
いくつかのアプローチを試しました。最初の 1 つは、コールバックの後に jquery を使用して送信を実行することです。
$('#submit').on('click', function(e) {
e.preventDefault();
run_func_with_callback(h);
}
h() {
if (success) {
$('#submit').submit();
}
}
もう 1 つは、コールバックによってフラグが変更されるまで、無限ループを試みています。
callback_flag = 0;
$('#submit').on('click', function(e) {
run_func_with_callback(h);
while(callback_flag == 0) {
setTimeout(function() {}, 1000); // I want some form of sleep function here
}
if (callback_flag == -1) {
e.preventDefault();
}
}
h() {
if (success) {
callback_flag = 1;
} else {
callback_flag = -1;
}
}
ただし、これらのソリューションはどちらも機能しません。まず、jQuery は実際にはそのようには機能しないと思います。私が行った2番目の方法はスリープ機能ではなく、必要な方法で動作しません。
どんな洞察も歓迎します。ありがとう!