簡體   English   中英

確定頁面在JavaScript中是否有效 - ASP.NET

[英]Determine if page is valid in JavaScript - ASP.NET

確定ASPX頁面上的表單在JavaScript中是否有效的最佳方法是什么?

我試圖檢查使用JavaScript window.showModalDialog()打開的用戶控件的驗證,並檢查服務器端的'Page.IsValid'屬性不起作用。 我正在使用ASP.NET驗證控件進行頁面驗證。

如果我有一個使用一堆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>

您正在檢查Page.IsValid ,您應該在哪里檢查Page_IsValid (它是.NET驗證器公開的變量):)

ASP.NET驗證控件公開了一個可以與javascript一起使用的客戶端API: http//msdn.microsoft.com/en-us/library/aa479045.aspx

您應該能夠檢查Page_IsValid對象以查看是否有任何驗證控件無效。

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

您可以使用jQuery和Validation插件來執行客戶端驗證。 這將適用於html標記和asp.net服務器控件。 Phil Haack有一個很好的示例項目 ,可以向您展示基礎知識。

這個SO問題也對這種方法進行了深入的回顧。

為頁面中的每個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>

在你的javascript調用之后,如Page_ClientValidate("ValidationGroup")

例如:

function ValidatePage(){
if(Page_ClientValidate("Validate")){ //validate using above validation controls group
      //validation return true section
}
else{
      //validation return false section
}
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM