Remove support for metadata plugin, replace with data-rule- and data-msg- (added in 907467e8) properties.

This commit is contained in:
Max Lynch
2012-05-15 17:34:22 -05:00
committed by Jörn Zaefferer
parent 5ec962ebb6
commit 6df33a8ccc
7 changed files with 55 additions and 201 deletions

43
jquery.validate.js vendored
View File

@@ -148,9 +148,9 @@ $.extend($.fn, {
var data = $.validator.normalizeRules(
$.extend(
{},
$.validator.metadataRules(element),
$.validator.classRules(element),
$.validator.attributeRules(element),
$.validator.dataRules(element),
$.validator.staticRules(element)
), element);
@@ -571,16 +571,6 @@ $.extend($.validator, {
return true;
},
// return the custom message for the given element and validation method
// specified in the element's "messages" metadata
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];
},
// return the custom message for the given element and validation method
// specified in the element's HTML5 data attribute
customDataMessage: function(element, method) {
@@ -607,7 +597,6 @@ $.extend($.validator, {
return this.findDefined(
this.customMessage( element.name, method ),
this.customDataMessage( element, method ),
this.customMetaMessage( element, method ),
// title is never undefined, so handle empty string as undefined
!this.settings.ignoreTitle && element.title || undefined,
$.validator.messages[method],
@@ -877,15 +866,16 @@ $.extend($.validator, {
return rules;
},
metadataRules: function(element) {
if (!$.metadata) {
return {};
dataRules: function(element) {
var method, value,
rules = {}, $element = $(element);
for (method in $.validator.methods) {
value = $element.data('rule-' + method.toLowerCase());
if (value !== undefined) {
rules[method] = value;
}
}
var meta = $.data(element.form, 'validator').settings.meta;
return meta ?
$(element).metadata()[meta] :
$(element).metadata();
return rules;
},
staticRules: function(element) {
@@ -935,8 +925,14 @@ $.extend($.validator, {
}
});
$.each(['rangelength', 'range'], function() {
var parts;
if (rules[this]) {
rules[this] = [Number(rules[this][0]), Number(rules[this][1])];
if ($.isArray(rules[this])) {
rules[this] = [Number(rules[this][0]), Number(rules[this][1])];
} else if (typeof rules[this] === 'string') {
parts = rules[this].split(/[\s,]+/);
rules[this] = [Number(parts[0]), Number(parts[1])];
}
}
});
@@ -954,11 +950,6 @@ $.extend($.validator, {
}
}
// To support custom messages in metadata ignore rule methods titled "messages"
if (rules.messages) {
delete rules.messages;
}
return rules;
},