首页 > 解决方案 > 在 ASP.Net C# 中验证文本框中某些单词的最佳方法

问题描述

我有一个 PIN 文本框,如果用户输入了 111111 或 000000 等无效 PIN,我需要在其中触发验证。已经尝试使用带有 JS 调用的 CustomValidator,但是在我输入有效 PIN 后“无效 PIN”消息不会消失。所以我正在检查这是否可以在像 RegularExpressionValidator 这样的验证控件中完成。我的问题是我们可以在 ValidationExpression 中添加某些单词吗?如果是这样,防止多个单词的验证表达式是什么?

我的 aspx 文件

<asp:CustomValidator ID="cvNewPIN" runat="server" 
     SetFocusOnError="true" ClientValidationFunction="IsPINValid" 
     ErrorMessage="Invalid PIN" ForeColor="Red" Font-Size="Small" 
     Display="Dynamic">Invalid PIN</asp:CustomValidator>

<asp:TextBox ID="txtPIN" runat="server" 
     TextMode="Password" CssClass="form-control" MaxLength="6"></asp:TextBox>

jQuery

function IsPINValid(sender, args) {
    args.IsValid = true;

    var invalidPINs = "111111,000000";
    var arrInvalidPINs = invalidPINs.split(',');
    if (arrInvalidPINs.indexOf($('#<%=txtPIN.ClientID %>') > - 1)) {
        args.IsValid = false;
    }
}

标签: c#jqueryasp.netregexvalidation

解决方案


你有以下陈述的问题总是正确的

 if (arrInvalidPINs.indexOf($('#<%=txtPIN.ClientID %>') > - 1))

您需要检查val文本框如下:

if (arrInvalidPINs.indexOf($('#<%=txtPIN.ClientID %>').val()) > - 1) {
    args.IsValid = false;
}

推荐阅读