jquery.metadate可以减少validate开发量,但是从1.11.1版本后,不支持metadate了,解决需要一下几步
1、搜索jquery.validate.js文件中的$.validator.classRules(element),并在其前加入以下行:
$.validator.metadataRules(element),
2、搜索 staticRules:, 在其前面加入以下代码,增加metadata的支持:
metadataRules: function(element) {
if (!$.metadata) return {};
var meta = $.data(element.form, ’validator’).settings.meta;
return meta ?
$(element).metadata()[meta] :
$(element).metadata();
},
3、搜索
defaultMessage:,修改其中 this.customDataMessage( element, method ),
为this.customMetaMessage( element, method ),
在这个方法上面添加
customMetaMessage: function(element, method) {
if (!$.metadata)
return;
var meta = this.settings.meta
? $(element).metadata()[this.settings.meta]
: $(element).metadata();
return meta && meta.messages && meta.messages[method];
},
4、搜索 normalizeRules:,在方法最后添加
if (rules.messages) {
delete rules.messages
}
以上可以解决,并拥有1.11.1版本的功能