javascript - 根据问题返回不同的消息

标签 javascript jquery jquery-validate

我有一个 jQuery 验证 addMethod,它检查密码长度并确保该值与另一个密码字段值匹配。

我不知道如何让 addMethod 根据原因返回自定义消息,这可能吗?

两个密码字段是:

<input type="password" class="required" name="Password" id="Password">
<input type="password" class="required" name="ConfirmPassword" id="ConfirmPassword">

代码:

$.validator.addMethod("arePasswordsValid", function(value, element) {

    this.isValid = true;
    this.errorMessage = "";
    this.options = {
         minLength: 6,
         maxLength: 20
    };

    if (value != $('#ConfirmPassword').val()) {
        this.errorMessage = "Password and Confirm Password should be same";
        this.isValid = false;
    }
    if (value.length < this.options.minLength || value.length > this.options.maxLength) {
        this.errorMessage = "The password must be between 6 and 20 characters long";
        this.isValid = false;
    }
    return this.isValid;
}, this.errorMessage);

$('form').find('input#Password').rules("add", {
     required: true,
     arePasswordsValid: true
});

上述内容不起作用,因为 this.errorMessage 不可访问,表单会根据需要填写的必填字段进行验证。

有什么想法吗?

最佳答案

1) 您的 minlengthmaxlength 规则拼写错误。请注意,大写的 L 不正确。

2) minlengthmaxlength 规则可以简单地组合成 the rangelength rule .

rangelength: [6,20]

3)你让事情变得比实际需要的更加复杂。只需使用 the equalTo rule 。您的情况正是它旨在解决的问题。

4) 使用messages选项更改任何消息的确切措辞。

工作演示:http://jsfiddle.net/7pN8A/2/

$('#myform').validate({
    rules: {
        Password: {
            required: true,
            rangelength: [6,20]
        },
        ConfirmPassword: {
            equalTo: "#Password"  // this is all you need... the rules for the other will apply
        }
    },
    messages: {  // optional, over-ride default messages
        Password: {
            rangelength: "The password must be between {0} and {1} characters long"
        },
        ConfirmPassword: {
            equalTo: "Password and Confirm Password should be same"
        }
    }
});

您的 HTML:

<form id="myform">     
    <input type="password" class="required" name="Password" id="Password">
    <input type="password" class="required" name="ConfirmPassword" id="ConfirmPassword">
</form>

关于javascript - 根据问题返回不同的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21479761/

相关文章:

javascript - 如何将可拖动对象的移动限制在一个区域?

javascript - 检查对象数组中是否存在值

javascript - 在 jQuery/javaScript 中迭代对象数组(时间相关迭代)

javascript - 多部分 jQuery 验证

jquery - 我可以在表单上有一个覆盖/忽略 jquery.validate 插件的提交按钮吗?

javascript - 我可以自动提示用户将移动网络应用程序添加到他们的主屏幕吗? [iOS]

javascript - 当我在 javascript 中添加自动播放为 true 时如何自动播放此 slider ,然后 slider 不起作用我如何解决此问题

javascript - 使用ajax更改fancybox的内容

javascript - 基于 Next Prev 值的 jQuery 验证

jquery - 使用 JQuery Validation 验证联系号码