如果所需的字段验证失败,则展开Ajax手风琴窗格

本文关键字:Ajax 手风琴 字段 失败 验证 如果 | 更新日期: 2023-09-27 18:04:04

我有一个必需的字段在第二和第三ajax手风琴面板。我在必需的字段验证器上设置了setfocus=true,相应的面板不会自动打开。

是否有一种方法可以让它打开面板,下一个需要的字段位于哪里?

 <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
    <asp:Accordion   
        ID="Accordion1" 
        runat="server">  
    <Panes >
    <asp:AccordionPane runat="server" >
    <Header>General Information </Header>
    <content>
    <asp:textbox id="textbox1" runat="server"/>
    </content>
    </asp:AccordionPane>
    <asp:AccordionPane runat="server" >
    <Header>Other Information </Header>
    <content>
    <asp:textbox id="textbox2" runat="server"/>
    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" SetFocusOnError="true"  runat="server"
             ErrorMessage="error on textbox 2"  ControlToValidate="textbox2" ForeColor= "Red" ValidationGroup="main">*</asp:RequiredFieldValidator>
    </content>
    </asp:AccordionPane>
<asp:AccordionPane runat="server" >
    <Header>More Information </Header>
    <content>
    <asp:textbox id="textbox3" runat="server"/>
    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" SetFocusOnError="true"  runat="server"
             ErrorMessage="error on textbox 3"  ControlToValidate="textbox3" ForeColor= "Red" ValidationGroup="main">*</asp:RequiredFieldValidator>
    </content>
    </asp:AccordionPane>
    </asp:accordion>
    //the rest of the code here
    //i typed this up, so please forgive if not everything is case sensitive
在本例中,如果我在第一个窗格上,并单击"validate"按钮,则所需的字段在第二个和第三个窗格中。验证确实失败了,但没有将用户带到textbox2或textox3(它们是空的)。如何对其进行编码,以便在验证失败时将焦点自动设置为下一个失败的文本框?它确实工作,如果我已经有窗格2打开时,我点击"验证"按钮,在这种情况下,焦点被设置为textbox2。但是,如果我在textbox2中放入一些内容并再次验证,textbox3失败,但焦点没有设置。

如果所需的字段验证失败,则展开Ajax手风琴窗格

同时打开两个手风琴面板并不困难。基本上控制不是这样设计的。你可以使用可折叠面板。但是本文指定了一种方法

http://www.c-sharpcorner.com/uploadfile/Zhenia/keeping-multiple-panes-open-in-accordion-web-control/

这里还有使用JavaScript打开手风琴面板的链接。

http://forums.asp.net/t/1194270.aspx

jQuery Accordion -打开页面加载的特定部分

希望能有所帮助