自定义验证器不工作

Custom validator is not working

本文关键字:工作 验证 自定义      更新时间:2023-09-26

我表单中的自定义验证器不工作,请检查下面的javascript和代码

<script type="text/javascript">
    function checkalphabets(sender, args) {
        var pattern = /^[a-zA-Z's]+$/;
        var regexp1 = new RegExp("(www|http|https|WWW|HTTP|HTTPS)");
        var sUser = <%= CreateFirstNameTextBox.ClientID %>.value;
        if ((!pattern.test(args.value))|| (regexp1.test(args.value))) 
        {
            return false;
        }
            return true;
    }
</script>

<body>
<form id="form1" runat="server">
<div>
    <asp:TextBox runat="server" ID="CreateFirstNameTextBox" placeholder="First Name"
        MaxLength="50"></asp:TextBox>
    <asp:CustomValidator ID="CustomValidator2" runat="server" ErrorMessage="Only Alphabets allowed! & http, www, https are not allowed"
        ClientValidationFunction="checkalphabets" ForeColor="red" ControlToValidate="CreateFirstNameTextBox"
        ValidationGroup="create" />

    <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" ValidationGroup="create" />
</div>
</form>

我必须只允许字母进入文本框,不应该允许www、http、https

您需要在MSDN中看到有关ClientValidationFunction的信息。例如,您可以看到,在验证函数中,您需要为参数设置IsValid属性,因此您需要像一样更改代码

function checkalphabets(sender, args) {
    var pattern = /^[a-zA-Z's]+$/;
    var regexp1 = new RegExp("(www|http|https|WWW|HTTP|HTTPS)");
    var sUser = args.Value; //<%= CreateFirstNameTextBox.ClientID %>.value;
    args.IsValid = pattern.test(sUser);
} 

同样,<%= CreateFirstNameTextBox.ClientID %>.value最好使用args.Value

更新以使用两种条件

function checkalphabets(sender, args) {
    var pattern = /^[a-zA-Z's]+$/;
    var regexp1 = new RegExp("(www|http|https|WWW|HTTP|HTTPS)");
    var sUser = args.Value; //<%= CreateFirstNameTextBox.ClientID %>.value;
    args.IsValid = pattern.test(sUser) && !regexp1.test(sUser);
}