如何触发RegularExpressionValidator的客户端验证

本文关键字:客户端 验证 RegularExpressionValidator 何触发 | 更新日期: 2023-09-27 18:00:25

我对ASP.NET表单中的输入文本框使用RegularExpressionValidators。

GUI显示为。所有项目都是服务器控件,在离开文本框时,如果输入无效,我会显示错误消息。

我已在RegularExpressionValidator中使用EnableClientScript启用客户端验证。一旦我离开文本框,它就会立即启动验证器。但是,单击任何按钮(导致生成回发)都会从屏幕上删除正则表达式验证器错误显示。如何重新触发客户端验证?

我是asp.net 的新手

---------------------------
|                         | * Invalid input
---------------------------
Listbox A           Listbox B
------------       ------------
|          |       |          |
|          |       |          |
|          |   >>  |          |
|          |       |          |
|          |       |          |
------------       ------------

代码是这样的。

<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
    <asp:TextBox ID="nameBox" runat="server" CssClass="StandardTextBox" Width="297px"
        EnableViewState="true"></asp:TextBox>
    <asp:RegularExpressionValidator ID="regExpValidatorRuleName2" align="left" runat="server"
        ControlToValidate="nameBox" 
        Width="10px" Height="10px" 
        CssClass="StandardErrorLabel"
        Display="Dynamic" 
        ErrorMessage="Input has Invalid character(s). Valid characters are a-z, A-Z, 0-9, _, @, ., -"
        ValidationGroup="EditingPanel" 
        ValidationExpression="^[a-zA-Z0-9_@.-]*$" 
        ToolTip="Input has Invalid character(s). Valid characters are a-z, A-Z, 0-9, _, @, ., -">*</asp:RegularExpressionValidator>
    <asp:Panel ID="criteriaPanel1" GroupingText="Test" runat="server"
        left="19px" CssClass="InputPanelTableLeft" Width="400px" Height="470px" Font-Bold="True"
        Font-Size="X-Small">
        <table class="InputPanelTable">
            <tr>
                <td align="left">
                    <asp:ListBox ID="listboxA" Rows="10" runat="server" EnableViewState="true"
                        Width="150px" Height="100px"></asp:ListBox>
                </td>
                <td style="padding: 0px 5px 0px 5px" valign="middle">
                    <asp:Button ID="buttonMove" runat="server" OnClick="buttonMove_OnClick"
                        Text="&gt;&gt;" ToolTip="Moves selected item from left side to right" />
                </td>
                <td align="left">
                    <asp:ListBox ID="listboxB" Rows="10" runat="server" EnableViewState="true"
                        Width="150px" Height="100px"></asp:ListBox>
                </td>
            </tr>
        </table>
    </asp:Panel>
</asp:Content>

如何触发RegularExpressionValidator的客户端验证

我发现buttonMove在点击它时会导致回发。

验证控件的错误消息无法持久存在,包括回发。

您没有提到从列表框A移动到列表框B的内容。

因此,如果您可以使用JavaScript将元素从ListBox A移动到ListBox B(我的意思是,不要使用服务器端程序),那么您的问题就可以解决。

如果你有任何问题,请告诉我。