わかりました。送信イベントハンドラーをフォームにバインドしました。ハンドラーはデータを検証するように設定されており、検証に合格すると、フォームの送信を無効にし、「お待ちください...処理中」というメッセージを表示します。
基本的な構造は次のとおりです。
function handler() {
// Validation stuff goes here.
...
// Validation passes, show message and return true.
$('#processing-msg').show(); // Show the 'processing' message.
$form.bind('submit', function() { return false }); // Disable further form submits.
return true; // Proceed with form submittal.
}
最後のステートメントまで、return
前にブレークするreturn true
と、処理メッセージが表示されます。しかし、私がそれを許可した場合return true
、メッセージはまったく表示されません。また、送信ボタンは無効になっているようには見えません(プロセスの別の部分)。これは、Safariを除くほとんどすべてのブラウザで機能します。送信-無効化ロジックをコメントアウトしようとしましたが、サイコロはありません。
アップデート
jsfiddleで問題を完全に再現することはできませんでした。ただし、ここでは、Safariで呼び出される関数の順序がどのように異なるかを確認できます(alerts()
メッセージが表示される前に発生します):http://jsfiddle.net/skttw/3/