简单JQuery验证程序addMethod不工作

简单JQuery验证程序addMethod不工作,jquery,jquery-validate,Jquery,Jquery Validate,更新了底部的问题 我试图验证一个超级简单的表单。最终,用户名将与RegExp语句进行比较,密码也将进行比较。然而现在我只是想学习Validator addMethod格式 我目前有以下脚本: JQuery.validator.addMethod( "legalName", function(value, element) { if (element.value == "bob") { return false;

更新了底部的问题

我试图验证一个超级简单的表单。最终,用户名将与RegExp语句进行比较,密码也将进行比较。然而现在我只是想学习Validator addMethod格式

我目前有以下脚本:

JQuery.validator.addMethod(
    "legalName",
    function(value, element) {
        if (element.value == "bob")
        {
            return false;
        }
        else return true;
    },
    "Use a valid username."
);

$(document).ready(function() {
    $("#form1").validate({
        rules: {
            username: {
                legalName: true
            }
        },
    });
});
如果我没有弄错的话,它应该返回false并用“使用有效的用户名”来回答

然而,它只是在提交

我在标题中链接到JQuery BEFORE Validator,如所示

我的uber simple表单如下所示:

<form id="form1" method="post" action="">
  <div class="form-row"><span class="label">Username *</span><input type="text" name="username" /></div>
  <div class="form-row"><input class="submit" type="submit" value="Submit"></div>
</form>

用户名*
最后,如何在
else
阶段重新构造addMethod函数以返回true
if
false
,同时保持对
false
返回的消息警报? (如果你不明白我想说什么,请忽略最后一部分:)

提前谢谢


感谢所有指出我的
JQuery
->
JQuery
打字错误的人

新增->


理想情况下,我会尝试将其转换为一个简单的登录表单(用户名/密码)。它仅用于演示,因此不会附加数据库或任何东西,只是一些简单的js验证。我希望为您正在使用的
JQuery
,而不是
JQuery
(little
j
)验证用户名

JavaScript区分大小写

>>> typeof jQuery
"function"
>>> typeof JQuery
"undefined"
如果
$
也指向您的
jQuery
对象(默认情况下是这样),那么您可以直接使用它

至于您的自定义验证函数,您可以像这样简化它

jQuery.validator.addMethod(
    "legalName",
    function(value, element) {
        return (element.value != "bob");
    },
    "Use a valid username."
);

对于不区分大小写的比较,首先对
使用
toLowerCase()

我可以通过将
JQuery.validator.addMethod
更改为
$.validator.addMethod
来修复第一部分

我不完全理解你的第二个问题。如果你描述了你感兴趣的行为,也许我可以帮你做到这一点。

试试看

jQuery.validator.addMethod("legalname", function(value, element) {
    var i = /^bob$/i;
    return (!(i.test(value)));
}, "Invalid user name");

请参阅

使用
jQuery
(小
j
)而不是
jQuery
(大写)感谢所有提到区分大小写打字错误的人!现在,我将尝试更好地解释第二部分。谢谢,我在底部添加了另一个问题,如果您愿意看一看的话。谢谢您的详细回答并能够解读第二部分!如果你愿意看的话,我还添加了一个问题。@tehaaron你可以通过发布一个新问题获得更好的曝光率:)这是真的……这样你可以得到另一个问题的答案;)哈哈