2011-07-02 4 views
0
<asp:Button ID="RecoverButton" runat="server" Text="Recover" 
    OnClick="RecoverButton_OnClick" UseSubmitBehavior="false" /> 

UseSubmitBehavior="false"は、私が提供していたOnClientClickの機能を上書きします。UseSubmitBehavior = "false"とバインディングOnClientClick?

私は、この一緒に行きました:

$(document).ready(function() { 
    $("[id$=RecoverButton]").live("click", RecoverButton_OnClick); 
}); 

function RecoverButton_OnClick(s, e) { 
    var input = $("[id$=MasterUsername]").val(); 
    var valid = $dn.s.MailValidation(input); 

    if (!valid) { 
     // prevent postback here 
    } 
} 

しかし、私は私が発射からのポストバックイベントを防ぐことができますかわかりません。 私はe.preventDefault()のようなことをやってみましたが、うまくいかなかったのですか?

更新事は両方__doPostbackjQueryのクリックハンドラである(最初のまたは多分ASP.NETの火災)を同時に立ち上げているようだが、私はすでに示して私のRecoverButton機能と放火魔にアラートを置いアラートがある間にポストバックが発生し、実行がブロックされます。

+0

問題はありません。 – Aristos

+0

@Aristosあなたは正しいですが、この特定の問題には答えませんでした。 – bevacqua

答えて

0

これを試してみてください:

$(document).ready(function() { 
    $("[id='<%= RecoverButton.ClientID %>']").live("click", RecoverButton_OnClick); 
} 
    function RecoverButton_OnClick(event) { 
     var input = $("[id$=MasterUsername]").val(); 
     var valid = $dn.s.MailValidation(input); 
     if (!valid) { 
      return false; //This cancels the submit event 
     } 
    } 

は、この情報がお役に立てば幸いです。乾杯。

+0

私の更新を読む.. – bevacqua

+1

これは古いですが、 '.live'は推奨されません。代わりに '.on'を使用してください。 –

1

私は同じ問題を抱えています。 次のダーティーコードを使用して問題を解決しました。

if (!valid) { 

    //throw a exception to prevent _doPostBack method running. 
    var e = new Error(); 
    throw e; 
    } 
+0

jqueryでフォームを検証し、ポストバックの直前にボタンを無効にすると、これが私にとっては唯一の問題です。 UseSubmitBehavior = falseを使用すると、関数 "preventDefault()"は機能しません。 – Flezcano

関連する問題