diff --git a/src/core.js b/src/core.js index 7837ea713..ae0044a51 100644 --- a/src/core.js +++ b/src/core.js @@ -213,6 +213,9 @@ $.validator.format = function( source, params ) { return $.validator.format.apply( this, args ); }; } + if ( params === undefined ) { + return source; + } if ( arguments.length > 2 && params.constructor !== Array ) { params = $.makeArray( arguments ).slice( 1 ); } @@ -739,26 +742,29 @@ $.extend( $.validator, { return undefined; }, - defaultMessage: function( element, method ) { - return this.findDefined( - this.customMessage( element.name, method ), - this.customDataMessage( element, method ), - - // 'title' is never undefined, so handle empty string as undefined - !this.settings.ignoreTitle && element.title || undefined, - $.validator.messages[ method ], - "Warning: No message defined for " + element.name + "" - ); - }, + defaultMessage: function( element, rule ) { + var message = this.findDefined( + this.customMessage( element.name, rule.method ), + this.customDataMessage( element, rule.method ), - formatAndAdd: function( element, rule ) { - var message = this.defaultMessage( element, rule.method ), + // 'title' is never undefined, so handle empty string as undefined + !this.settings.ignoreTitle && element.title || undefined, + $.validator.messages[ rule.method ], + "Warning: No message defined for " + element.name + "" + ), theregex = /\$?\{(\d+)\}/g; if ( typeof message === "function" ) { message = message.call( this, rule.parameters, element ); } else if ( theregex.test( message ) ) { message = $.validator.format( message.replace( theregex, "{$1}" ), rule.parameters ); } + + return message; + }, + + formatAndAdd: function( element, rule ) { + var message = this.defaultMessage( element, rule ); + this.errorList.push( { message: message, element: element, @@ -1004,7 +1010,7 @@ $.extend( $.validator, { return $.data( element, "previousValue" ) || $.data( element, "previousValue", { old: null, valid: true, - message: this.defaultMessage( element, "remote" ) + message: this.defaultMessage( element, { method: "remote" } ) } ); }, @@ -1393,8 +1399,8 @@ $.extend( $.validator, { validator.showErrors(); } else { errors = {}; - message = response || validator.defaultMessage( element, "remote" ); - errors[ element.name ] = previous.message = $.isFunction( message ) ? message( value ) : message; + message = response || validator.defaultMessage( element, { method: "remote", parameters: value } ); + errors[ element.name ] = previous.message = message; validator.invalid[ element.name ] = true; validator.showErrors( errors ); } diff --git a/test/index.html b/test/index.html index 737da587d..db6e6689c 100644 --- a/test/index.html +++ b/test/index.html @@ -387,6 +387,10 @@
+