2012-07-18 60 views
1

沿的RequiredFieldValidator我有多個RequiredFieldValidator的,如:工作與JavaScript

<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtbox1" 
      Display="Dynamic" ErrorMessage="Required Field" SetFocusOnError="True" 
      ValidationGroup="validator1" CssClass="validator" /> 

與此相關的按鈕:

<asp:LinkButton runat="server" ID="btnNext1" Text="Next Page" CssClass="btn" ValidationGroup="validator1" /> 

隨着一些javascript:

<script type="text/javascript"> 
$(function() { 
    function nextPage1() { 

     $("#divFirstPage").hide("fade"); 
     $("#divSecondPage").show("fade"); 
     $("#<%=btnNext1.ClientID%>").hide(); 
     $("#<%=btnNext2.ClientID%>").show(); 
     $("#<%=btnPrevious1.ClientID%>").show(); 
    }; 
    $("#<%=btnNext1.ClientID%>").click(function() { 
     nextPage1(); 
     return false; 
    }); 
    $("#divSecondPage").hide(); 
    $("#divThirdPage").hide(); 
    $("#<%=btnNext2.ClientID%>").hide(); 
    $("#<%=btnPrevious1.ClientID%>").hide(); 
    $("#<%=btnPrevious2.ClientID%>").hide(); 
}); 
</script> 

但JavaScript的變在驗證之前執行,所以id需要執行驗證

+0

所以,你想在** nextPage1函數中的代碼之前執行驗證器**? – Jupaol 2012-07-18 18:59:41

+0

是的,對不起,沒有明確說明 – zarichney 2012-07-18 19:04:16

回答

7

如果我的理解是正確的,你要執行JavaScript代碼之前驗證表單的JavaScript之前

嘗試是這樣的:

$("#<%=btnNext1.ClientID%>").click(function() { 
    var val = Page_ClientValidate(); 
    if(!val) { 
     return false; 
    } 
    nextPage1(); 
    return true; 
}); 

可選,如果你想指定自定義ValidationGroup,你可以使用下面的代碼:

Page_ClientValidate('your group name'); 
+0

完美,謝謝! – zarichney 2012-07-18 19:09:58

+0

好吧,所以驗證器被觸發,但我有一個新的問題,它不會讓我去第二頁。我相信這是因爲Page_ClientValidate()也檢查其他頁面上的文本框,其中我無法訪問 – zarichney 2012-07-18 19:19:14

+0

請記住在腳本中返回true; 'Page_ClientValidate'驗證頁面,如果你沒有指定一個組,那麼它將驗證整個頁面,如果你想限制只驗證一些控件,使用'ValidationGroup'屬性對它們進行分組並且像這樣調用驗證:' Page_ClientValidate('groupName')' – Jupaol 2012-07-18 19:22:53