【问题标题】:How to add alphanumeric check to jQuery validation plugin?如何向 jQuery 验证插件添加字母数字检查?
【发布时间】:2011-05-26 01:06:56
【问题描述】:

这里提出了这个确切的问题:

using the jquery validation plugin, how can I add a regex validation on a textbox?

但不幸的是,发布的解决方案对我不起作用。我正在使用非常流行的 jquery 验证插件,特别是这个版本:

http://jquery.bassistance.de/validate/jquery.validate.js

我尝试添加自定义字母数字函数(来自上述堆栈溢出问题),如下所示:

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<script type="text/javascript" src="http://jquery.bassistance.de/validate/jquery.validate.js"></script>

<script type="text/javascript">
$(function() {

    $.validator.addMethod("loginRegex", function(value, element) {
        return this.optional(element) || /^[a-z0-9\-]+$/i.test(value);
    }, "Username must contain only letters, numbers, or dashes.");

    $("#myForm").validate({
        rules: {
            "login": {
                required: true,
                loginRegex: true,
            }
        },
        messages: {
            "login": {
                required: "You must enter a login name",
                loginRegex: "Login format not valid"
            }
        }
    });

});
</script>

<form method="post" id="myForm">
    <input type="text" name="login" />  
    <input type="submit" value="Go" />  
</form>

如果您运行此代码,您会看到它只验证某种类型的输入,而不是通过自定义字母数字函数验证输入。如何让它发挥作用?

【问题讨论】:

  • 什么不起作用?输入除数字、字母或破折号以外的任何内容,您将收到错误消息 (jsfiddle.net/SwEJb)
  • @Andrew Whitaker 你是对的,不知道为什么前几天它不起作用。我只在其他一些代码必须冲突的主站点上尝试过。但在这个独立版本中,它似乎工作正常。谢谢。

标签: javascript jquery


【解决方案1】:

可能是您的登录规则后面多了一个逗号吗? IE 会遇到问题:

rules: {
    "login": {
        required: true,
        loginRegex: true,
    }
},

应该是:

rules: {
    "login": {
        required: true,
        loginRegex: true
    }
},

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 2012-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多