2012-02-16 7 views
1

ユーザーがフォームを送信しているときにオーバーレイを表示したいとします。私はこれを達成するために$('form').submit(function { [...] })を使用しています。フォームを送信するときにオーバーレイを表示する

問題は、クライアント側の検証を使用していることです。直接の解決策は、もちろん手動でフォームを検証することです:if ($('form').validate().valid()) { .. }

最終的な解決策は、POSTが行われたときに呼び出されるイベントにフックすることです。 (フォームの送信を妨げる可能性のある他のプラグインをサポートするため、および検証プラグインが使用されていない場合)

答えて

1

あなたがjQuery validateを使用していると仮定すると、あなたは検証を通過するときに、たとえば、コードを実行するためにsubmitHandlerプロパティを使用することができます。

$("#myForm").validate({ 
    submitHandler: function(form) { 
     // display overlay 

     form.submit(); 
    } 
}); 

Further reading

0

サブミット中にreturn false;に挑戦してみてください。

+1

私はjqueryの検証プラグインを変更する必要はありません。 – jgauffin

+1

サイドノート:jQueryの作者は、連鎖を防ぐので 'false'を返すことをお勧めしません。常にこれを返すべきです。フォームの送信を停止するには 'e.preventDefault()'を使います。 – jgauffin

関連する問題