jquery - 扩展 jQuery 验证密码功能

标签 jquery jquery-validate

我正在使用这个插件:jQuery Validate

我有一个像这样的基本表单:

HTML

<form class="cmxform" id="signupForm" method="get" action="">
    <fieldset>
        <legend>Validating a complete form</legend>

            <label for="firstname">Firstname</label>
            <input id="firstname" name="firstname" type="text" />

            <label for="lastname">Lastname</label>
            <input id="lastname" name="lastname" type="text" />

            <label for="username">Username</label>
            <input id="username" name="username" type="text" />

            <label for="password">Password</label>
            <input id="password" name="password" type="password" />

            <label for="confirm_password">Confirm password</label>
            <input id="confirm_password" name="confirm_password" type="password" />

            <input class="submit" type="submit" value="Submit"/>

    </fieldset>
</form>

jQuery

$().ready(function() {

    // validate signup form on keyup and submit
    $("#signupForm").validate({
        rules: {
            firstname: "required",
            lastname: "required",
            username: {
                required: true,
                minlength: 2
            },
            password: {
                required: true,
                minlength: 5
            },
            confirm_password: {
                required: true,
                minlength: 5,
                equalTo: "#password"
            },
            email: {
                required: true,
                email: true
            }
        },
        messages: {
            firstname: "Please enter your firstname",
            lastname: "Please enter your lastname",
            username: {
                required: "Please enter a username",
                minlength: "Your username must consist of at least 2 characters"
            },
            password: {
                required: "Please provide a password",
                minlength: "Your password must be at least 5 characters long"
            },
            confirm_password: {
                required: "Please provide a password",
                minlength: "Your password must be at least 5 characters long",
                equalTo: "Please enter the same password as above"
            },
            email: "Please enter a valid email address"
        }
    });

});

我想让密码需要大写字母并至少包含一个数字。

我如何更改密码规则并将其添加到其中?

这是一个 fiddle :

http://jsfiddle.net/dwhitmarsh/xXUWB/

最佳答案

在验证发生之前,您必须首先添加自己的验证方法。就我个人而言,我推荐文档的 ready 事件。 您可以使用以下“脚手架”:

$(function() {
    $.validator.addMethod('capitalLetterMandatory', function(function(value, element) {
        // Return true if the validation succeeded, false otherwise.
        // Best achieved through an appropriate regular expression
    });
});

然后,在初始化验证器时,不要忘记在规则定义 block 中实际将该规则 Hook 到您的字段:

rules: {
    password: { // Note that in this line it's the field name, not the rule name, which can be confusing
         capitalLetterMandatory: true,  // rule name
         mandatory: true
    },
    // Other rules go here
}

关于jquery - 扩展 jQuery 验证密码功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18118661/

相关文章:

Jquery 包含 AJAX?想法?

jquery - 使用jquery验证的远程功能

jQuery 验证 : How to add a rule for regular expression validation?

jquery - 为什么 jQuery UI 日期选择器不能在 jQuery 对话框模式中工作?

javascript - jQuery checkerBoard 调整棋盘尺寸

jquery 选择某些 'level' 元素?

javascript - 使用 JavaScript 检测 iPad 应用内浏览器用户代理

如果字段留空,Jquery 返回模糊时的原始值

jquery - bassistance jquery 验证插件 - 依赖不匹配

javascript - 使用动态输入进行 Jquery 验证