文本更改上的RegularExpressionValidator

时间:2013-11-08 14:29:37

标签: c# asp.net validation webforms

这可能吗?

我有两个使用RegularExpressionValidator的文本框,它正在检查“,”如果没有逗号,我希望它清除文本框并在文本框旁边显示错误消息。

如果这是不可能的,我可以用什么来检查输入值中的“,”?

谢谢

2 个答案:

答案 0 :(得分:2)

这是解决方案:

<asp:TextBox ID="tb1" runat="server" />
<asp:RegularExpressionValidator ErrorMessage="Comma is required" ControlToValidate="tb1" runat="server" ValidationExpression=".*,.*" ForeColor="Red"/>

编辑:验证失败时包括明文框的javascript函数。

    <asp:TextBox ID="tb1" runat="server" OnChange="tbOnChange();" />
    <asp:RegularExpressionValidator ID="tbVal" ErrorMessage="Comma is required" ControlToValidate="tb1" runat="server" ValidationExpression=".*,.*" ForeColor="Red" />
    <script type="text/javascript">
        function tbOnChange() {
            if (typeof (Page_Validators) == "undefined") return;
            if (!tbVal.isvalid) {
                var tb1 = document.getElementById('tb1');
                tb1.value = '';
            }
        }
    </script>

此致

ķ

答案 1 :(得分:1)

如果我已正确理解您的问题,您需要检查是否存在逗号,然后在验证失败时清除文本框。

  1. 要检查是否存在逗号,请执行ValidationExpression: “。,。”即:

    <asp:RegularExpressionValidator runat="server" id="valRgx" ControlToValidate="txtBox" ValidationExpression=".*,.*" ErrorMessage="Must contain a comma" />

  2. 要检查是否需要清除文本框,假定完整回发,请覆盖页面预渲染事件,如果验证失败,请清除文本框:

  3. protected void Page_PreRender(object sender, EventArgs e)
    {
        if (!NameOfValidator.IsValid) TextBoxName.Text = string.Empty;
    }
    

    编辑2:

    要回答有关单独接受F4或条形码模式的问题:

    <asp:RegularExpressionValidator runat="server" id="valRgx" ControlToValidate="txtBox" ValidationExpression="(F4)|(.*,.*)" ErrorMessage="Must contain a comma" />