2009-07-01 18 views
71

JavaScriptでASPXページのフォームが有効かどうかを判断する最良の方法は何ですか?ページがJavaScript - ASP.NETで有効かどうかを確認

JavaScript window.showModalDialog()を使用して開かれ、サーバー側の 'Page.IsValid'プロパティが動作しないことを確認しているユーザーコントロールの検証を確認しようとしています。私は、ページ検証のためのASP.NET検証コントロールを使用しています。

答えて

159

複数のASP.NET検証コントロールを使用しているページがある場合は、次のようなコードを使用してページの検証を行います。入力送信で呼び出しを行います。うまくいけば、このコードサンプルはあなたを始められます!あなたは(これは、.NETバリデータによって公開される変数です)あなたがPage_IsValidをチェックする必要がありますPage.IsValidをチェックされている

<input type="submit" value="Submit" onclick"ValidatePage();" /> 

    <script type="text/javascript"> 

    function ValidatePage() { 

     if (typeof (Page_ClientValidate) == 'function') { 
      Page_ClientValidate(); 
     } 

     if (Page_IsValid) { 
      // do something 
      alert('Page is valid!');     
     } 
     else { 
      // do something else 
      alert('Page is not valid!'); 
     } 
    } 

</script> 
+2

あなたが答えるプラス、以下の記事を読んます。http://www.velocityreviews .com/forums/t292061-related-pageclientvalidate-function.html私の問題解決に役立ちました。 –

+1

ページに複数の検証グループがあり、単一のグループが有効かどうかを確認するだけで、上記のコードを変更するにはどうすればよいですか? –

+5

更新 - 私は 'Page_ClientValidate()'呼び出しを削除して動作しました: –

1

jQueryとValidationプラグインを使用して、クライアント側の検証を実行できます。これは、htmlタグとasp.netサーバーコントロールの両方で動作します。 Phil Haack has a good sample projectをご覧ください。

このSO questionは、このアプローチについても深く検討しています。

6

ASP.NETの検証コントロールを使用すると、JavaScriptで使用できるクライアント側のAPIを公開:http://msdn.microsoft.com/en-us/library/aa479045.aspx

あなたは検証コントロールのいずれかが無効であるかどうかを確認するためにPage_IsValidオブジェクトをチェックすることができるはずです。

9

:)

ページ内の各 asp.net検証コントロールのための ValidationGroupプロパティを設定し
+0

サーバー側のPage.IsValidプロパティが動作していないことを確認していたことを忘れていました。 –

3
$("input[id$=Button2]").click(function() { 
    var validated = Page_ClientValidate('repo'); 
    if (validated) { 
     // JavaScript code. 
    } 
}); 
0

ページ内のValidationGroupに同じ名前を付ける必要があります。例えば

<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Required" ValidationGroup="Validate"></asp:RequiredFieldValidator> 
    <asp:RangeValidator ID="RangeValidator1" runat="server" ErrorMessage="RangeValidator" ValidationGroup="Validate"></asp:RangeValidator> 
    <asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="CustomValidator" ValidationGroup="Validate"></asp:CustomValidator> 

その後例えばPage_ClientValidate("ValidationGroup")

のようなあなたのjavascriptの呼び出しで:

function ValidatePage(){ 
if(Page_ClientValidate("Validate")){ //validate using above validation controls group 
     //validation return true section 
} 
else{ 
     //validation return false section 
} 
} 
関連する問題