2014-03-13 129 views
1

我试图增加jQuery验证和基因敲除验证插件之间的兼容性,以便在我的应用程序的不同位置可以使用相同的规则(承认是功能的子集)。Howto alias jQuery验证规则

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

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

这似乎非常简单,弥合差距。然而,这将引发“this.optional是不是一个功能”,当它击中了jQuery验证这里

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

我猜我需要通过正确的“这”上下文中不知何故?

回答

1

就想通了......

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

调用验证方法并传递正确的“这个”背景。希望这是有用的。