2012-01-18 18 views
1

asp.netボタンのOnClientClickプロパティをコードに追加しました。これで検証コントロールが機能しなくなりました。 OnClientClickコードを削除すると、検証が機能します。OnClientClickコードが有効な検証を妨げる

どのようにして両者を動作させることができますか?

<asp:Button 
ID="btnNext" 
runat="server" 
Text="Save & Continue" 
SkinID="btnContinue" 
OnClick="btnNext_Click" 
OnClientClick="_changesMade=false; return true;" 
ValidationGroup="vgPreMedSchool" Width="176px" /> 
+0

どうすればrunat = serverのチェックもできないのですか? "_changesMade = false; trueを返します。両方ともJavaScriptコードを投稿できますか?OnClientClick =あなたのケースでJavaScriptが必要ですか? – MethodMan

+0

idあなたがコードの関連部分を表示するだけの質問を編集したと思います。 –

答えて

6

これを試してください。

<asp:Button 
ID="btnNext" 
runat="server" 
Text="Save & Continue" 
SkinID="btnContinue" 
OnClick="btnNext_Click" 
OnClientClick="_changesMade=false; return Page_ClientValidate();" 
ValidationGroup="vgPreMedSchool" Width="176px" /> 

Page_ClientValidate() asp.netページの検証を呼び出すために使用するJavaScript関数です。

+0

Page_ClientValidateへの引数として検証グループを含めることを忘れないでください。もしあなたがそれを使うならば、 – pattermeister

1

バリデータコントロールは、クライアント側でデフォルトで動作します。基本的にクリックイベントに独自の機能が追加されています。これを解決するにはいくつかの方法があります:

1)カスタムバリデータを使用し、独自のクライアント検証方法を定義します。こうすることで、検証と必要な追加処理の両方を処理できます。

2)クライアント側の検証を無効にします。これにより、クライアント側のコードが必要に応じて機能し、サーバーへのポストバック中に検証が行われます。ただし、独自のクライアントクリック方式でデータが有効であると仮定している場合、これはうまく機能しません。

-1

あなたはOnClickとOnClientClickの両方のプロパティを呼び出すことはできないと思います。

一度に使用できるプロパティは1つだけです。

ありがとうございました。

+0

できます。サーバー側の機能であるOnClickの前に –

関連する問題