web-dev-qa-db-ja.com

JavaScriptでページが有効かどうかを判断する-ASP.NET

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

JavaScript window.showModalDialog()を使用して開かれたユーザーコントロールの検証を確認しようとしていますが、サーバー側で 'Page.IsValid'プロパティを確認しても機能しません。ページ検証にASP.NET検証コントロールを使用しています。

76

多数のASP.NET検証コントロールを使用しているページがある場合、次のようなコードを使用してページを検証します。入力サブミットで呼び出しを行います。うまくいけば、このコードサンプルがあなたを始めさせるでしょう!

    <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>
167
aherrick

Page.IsValidをチェックしています。Page_IsValidをチェックする必要があります(.NETバリデーターによって公開される変数です):)

9
Andrea

ASP.NET検証コントロールは、javascriptで使用できるクライアント側APIを公開します。 http://msdn.Microsoft.com/en-us/library/aa479045.aspx

Page_IsValidオブジェクトをチェックして、無効な検証コントロールがあるかどうかを確認できるはずです。

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

JQueryと Validation プラグインを使用して、クライアント側の検証を実行できます。これは、htmlタグとasp.netサーバーコントロールの両方で機能します。 Phil Haackには良いサンプルプロジェクトがあります これで基本がわかります。

この SOの質問 にも、このアプローチの詳細なレビューがあります。

1
David Robbins

ページ内の各_asp.net_バリデーターコントロールにValidationGroupプロパティを設定します。ページ内の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
}
}
_
0
Biby Augustine