From 9be1ffe83dfbddfd737d2e0a5397c8db3218cee6 Mon Sep 17 00:00:00 2001 From: "David W. Francis" Date: Fri, 10 Mar 2017 11:40:36 -0500 Subject: [PATCH 1/2] Increase priority of dynamic error messages If a validator returns a string, prefer it as an error message over ValidityState and Generic errors. ValidatorSpecific errors still take precedence. --- js/validator.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/js/validator.js b/js/validator.js index 78b0bde..1687ec2 100644 --- a/js/validator.js +++ b/js/validator.js @@ -195,10 +195,12 @@ return $el.attr('data-error') } - function getErrorMessage(key) { + function getErrorMessage(key, error) { return getValidatorSpecificError(key) + || (typeof error == 'string' ? error : null) || getValidityStateError() || getGenericError() + || error } $.each(this.validators, $.proxy(function (key, validator) { @@ -206,7 +208,7 @@ if ((getValue($el) || $el.attr('required')) && ($el.attr('data-' + key) !== undefined || key == 'native') && (error = validator.call(this, $el))) { - error = getErrorMessage(key) || error + error = getErrorMessage(key, error) !~errors.indexOf(error) && errors.push(error) } }, this)) @@ -216,7 +218,7 @@ var data = {} data[$el.attr('name')] = getValue($el) $.get($el.attr('data-remote'), data) - .fail(function (jqXHR, textStatus, error) { errors.push(getErrorMessage('remote') || error) }) + .fail(function (jqXHR, textStatus, error) { errors.push(getErrorMessage('remote', error)) }) .always(function () { deferred.resolve(errors)}) }) } else deferred.resolve(errors) From f55ebed52697f11ecc4603ec5564449b2a5aa716 Mon Sep 17 00:00:00 2001 From: "David W. Francis" Date: Fri, 10 Mar 2017 12:46:59 -0500 Subject: [PATCH 2/2] Decrease priority of dynamic error messages Move priority if ValidityState messages up. String responses only supersede generic errors --- js/validator.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/validator.js b/js/validator.js index 1687ec2..88be648 100644 --- a/js/validator.js +++ b/js/validator.js @@ -197,8 +197,8 @@ function getErrorMessage(key, error) { return getValidatorSpecificError(key) - || (typeof error == 'string' ? error : null) || getValidityStateError() + || (typeof error == 'string' ? error : null) || getGenericError() || error }