2012-07-18 58 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