aboutsummaryrefslogtreecommitdiffstats
path: root/src/widgets.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/widgets.js')
-rw-r--r--src/widgets.js9
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)