From 3ccf697bf61ca506bc24f7968480db7655f668f0 Mon Sep 17 00:00:00 2001 From: Monica Dinculescu Date: Tue, 4 Aug 2015 16:28:49 -0700 Subject: [PATCH] refactor the validation api --- iron-validatable-behavior.html | 36 ++++++++++++++++++++++++---------- 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/iron-validatable-behavior.html b/iron-validatable-behavior.html index a264668..e790477 100644 --- a/iron-validatable-behavior.html +++ b/iron-validatable-behavior.html @@ -16,7 +16,7 @@ /** * Use `Polymer.IronValidatableBehavior` to implement an element that validates user input. * - * ### Accessiblity + * ### Accessibility * * Changing the `invalid` property, either manually or by calling `validate()` will update the * `aria-invalid` attribute. @@ -87,19 +87,35 @@ }, /** - * @param {Object} values Passed to the validator's `validate()` function. - * @return {boolean} True if `values` is valid. + * Returns true if the `value` is valid, and updates `invalid`. If you want + * your element to have custom validation logic, do not override this method; + * override `_getValidity(value)` instead. + + * @param {Object} value The value to be validated. By default, it is passed + * to the validator's `validate()` function, if a validator is set. + * @return {boolean} True if `value` is valid. + */ + validate: function(value) { + this.invalid = !this._getValidity(value); + return !this.invalid; + }, + + /** + * Returns true if `value` is valid. By default, it is passed + * to the validator's `validate()` function, if a validator is set. You + * should override this method if you want to implement custom validity + * logic for your element. + * + * @param {Object} value The value to be validated. + * @return {boolean} True if `value` is valid. */ - validate: function(values) { - var valid = true; + + _getValidity: function(value) { if (this.hasValidator()) { - valid = this._validator.validate(values); + return this._validator.validate(value); } - - this.invalid = !valid; - return valid; + return true; } - };