jquery - 简单的 JQuery 验证器 addMethod 不起作用

标签 jquery jquery-validate

更新了底部的问题

我正在尝试验证一个 super 简单的表单。最终,用户名将与 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 并回复“使用有效的用户名”。如果我将“bob”放入表单中。

但是,它只是提交而已。

我按照指示在 header 中链接到 JQuery BEFORE Validator。

我的 super 简单表单如下所示:

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

最后,我将如何重构 addMethod 函数以在 else 阶段返回 true iffalse,同时保持消息警报返回 false? (如果您不明白我想说的话,请忽略最后一部分:))

提前致谢。

<小时/>

感谢所有指出我的 JQuery -> jQuery 拼写错误的人。

-> RegEx in jQuery Validator addMethod

理想情况下,我试图将其变成一个简单的登录表单(用户名/密码)。它仅用于演示,因此不会附加数据库或任何东西,只是一些简单的 js 验证。我希望使用户名验证 <48 个字符,只有英文字母和数字,没有特殊字符。我认为白名单是最简单的,所以我有这样的东西: ^[a-zA-Z0-9]*${1,48} 但我不确定这是否是正确的 JS RegExp (如果我没记错的话,它与 Ruby RegExp 不同?...通常我使用 rubular.com)。密码将类似,但需要一些大写/小写和数字。

我相信我需要为 legalPassword 制作另一个看起来非常相似的 $.validator.addMethod

编辑

将正则表达式更改为 ^[a-zA-Z0-9]+$ 并将 maxlength: 48 添加到我的验证函数中。然而,正则表达式仍然不起作用,据我所知它是正确的。

最佳答案

您使用的是JQuery,而不是jQuery(小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 - 简单的 JQuery 验证器 addMethod 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5229028/

相关文章:

javascript - 无法使用 javascript 对 JSON 对象 POST 中的双引号进行转义

jQuery 表单验证,仅显示最新的错误消息

javascript - jQuery 验证 - 仅指定 errorPlacement

jquery-validate - jQuery 动态验证

jquery - 获取命名函数以在 jQuery 中不断重复自身

javascript - Ajax-为 php 填充多个文本框

javascript - 获取某些 div 的子级 div 的数量

javascript - 仅在切换类(class)时显示标题和段落?

jquery - 如何使 jQuery Validate() 规则 onkeyup false?

将步骤 ="1"放入 "datetime-local"输入类型时,jQuery 验证失败