diff options
Diffstat (limited to 'src/widgets.js')
| -rw-r--r-- | src/widgets.js | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/widgets.js b/src/widgets.js index 2909aed1..828e6d24 100644 --- a/src/widgets.js +++ b/src/widgets.js @@ -27,6 +27,11 @@ function valueAccessor(scope, element) { required = required || required === ''; if (!validator) throw "Validator named '" + validatorName + "' not found."; function validate(value) { + var force = false; + if (isUndefined(value)) { + value = element.val(); + force = true; + } if (element[0].disabled || isString(element.attr('readonly'))) { elementError(element, NG_VALIDATION_ERROR, null); invalidWidgets.markValid(element); @@ -36,8 +41,8 @@ function valueAccessor(scope, element) { validateScope = extend(new (extend(function(){}, {prototype:scope}))(), {$element:element}); error = required && !trim(value) ? "Required" : - validator({state:validateScope, scope:{get:validateScope.$get, set:validateScope.$set}}, value); - if (error !== lastError) { + (trim(value) ? validator({state:validateScope, scope:{get:validateScope.$get, set:validateScope.$set}}, value) : null); + if (error !== lastError || force) { elementError(element, NG_VALIDATION_ERROR, error); lastError = error; if (error) |
