0

这可能吗?

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

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

谢谢你

4

2 回答 2

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>

问候

ķ

于 2013-11-08T15:02:26.267 回答
1

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

  1. 要检查是否存在逗号,请使用 ValidationExpression: ". ,. " 即:

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

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

IE

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" />

于 2013-11-08T14:55:38.300 回答