我试图提高jQuery验证和敲除验证插件之间的兼容性,以便可以在应用程序的不同位置上使用相同的规则(功能的子集)。

要解决的领域之一是jQuery验证对minlength,maxlength等(KO使用minLength)具有不同的大小写。我希望能够创建一个简单的别名...

    $.validator.addMethod("minLength", function(value, element, params) {
        return $.validator.methods.minlength(value, element, params);
    });


这似乎很容易弥合差距。但是,当它在此处命中jQuery验证器时,将抛出“ this.optional不是一个函数”

 // http://docs.jquery.com/Plugins/Validation/Methods/minlength
 minlength: function(value, element, param) {
    return this.optional(element) || this.getLength($.trim(value), element) >= param;
 },


我猜我需要以某种方式传递正确的“ this”上下文?

最佳答案

只是想通了...

    $.validator.addMethod("minLength", function(value, element, params) {
        return $.validator.methods.minlength.call(this,value, element, params);
    });


调用验证器方法,并传递正确的“ this”上下文。希望这是有用的。

关于javascript - 如何为jQuery验证规则添加别名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22382668/

10-10 18:39