ASP.NET にて二重送信の対応をしているのですが、バリデーションとJSのクリックイベントがぶつかってしまい、イベントハンドラまでたどり着けません・・・。

aspx

<asp:ImageButton ID="imgUpdate" runat="server" CausesValidation="false"
 OnClientClick="return isValid(); 
 "ImageUrl="~/Images/Update32x32.png" 
 Text="Update" ToolTip="Update" OnClick="imgUpdate_Click" />

JavaScript

<script type="text/javascript">
function isValid() {
   $('form').submit(function() {      
       Page_ClientValidate();
       if (!Page_IsValid) return false;
    // 二重送信防止
    $(this).submit(function () {
        return false;
       });
   }); 
 }
</script>

参考URL

一度クライアントでバリデーションエラーが出ている状態でsubmitし、その後エラーを修正して再度submitを押下したところ、二重送信と判断されてしまいます。
(CausesValidation="false" にすればバリデーションの順番を調整できる、と認識していたのですが、その後の二重送信防止の処理で return false になっているようです。)

デバッグしたところ、$(this).submit(function (){  に何度もアクセスされてしまうのですが、条件分岐に何か間違いがあるのでしょうか。