簡體   English   中英

當 ASP.Net 驗證器成功時,如何調用 JavaScript function?

[英]How to call JavaScript function when ASP.Net validators succeed?

我有一個帶有 ASP.Net 控件和驗證器的網絡表單,它們設置為一個組。 我正在嘗試執行一些僅在驗證器成功時才會發生的 JavaScript,以防止用戶在未完成要求的情況下進入表單的下一步。

但是,我似乎無法讓它正常工作。 JavaScript 要么在未完成驗證的情況下執行,要么 JavaScript 在驗證成功時不會執行。 我暗暗懷疑這是由於 HTML Required="true"標簽和 ASP.Net 驗證器的行為不同所致。

ASP網

<asp:TextBox ID="EmailAddress" runat="server" TextMode="Email" Required="true" ValidationGroup="Group1" />

<asp:TextBox ID="Password1" runat="server" TextMode="Password" Required="true" ValidationGroup="Group1" />
<asp:RegularExpressionValidator ID="valPassword" runat="server" ControlToValidate="Password1" 
    ErrorMessage="Your password doesn't meet the strength requirements" 
    ValidationExpression="^(?=.*\d)(?=.*[a-z])(?=.*[/W_].*)(?=.*[A-Z]).{8,255}" 
    ValidationGroup="Group1" ></asp:RegularExpressionValidator>

<asp:TextBox ID="Password2" runat="server" TextMode="Password" Required="true" ValidationGroup="Group1" 
/>
<asp:CompareValidator runat="server" ControlToCompare="Password1" ControlToValidate="Password2"  
    ErrorMessage="Your entered passwords do not match." ValidationGroup="Group1" />

<asp:Button ID="btnNext" runat="server" Text=">" OnClientClick="pgNext();" ValidationGroup="Group1" />

JavaScript

function pgNext() {
    if (Page_ClientValidate("Group1")) {
        $('.register-page1').css('display', 'none');
        $('.register-page2').css('display', 'block');
    } else {

    }
}

調用您的頁面驗證器,然后檢查頁面是否有效,最后調用您的 js function。在您的按鈕單擊事件中:

 Page.Validate("validationGroupNameHere");

 if(Page.IsValid)
 {
   // click code here
   
  //then call your js function
  Page.RegisterStartupScript(Page, Page.GetType(), "callMe", " jsFunctionNameHere();", true);
 }


 

暫無
暫無

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

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