diff options
| -rw-r--r-- | src/ng/directive/input.js | 4 | ||||
| -rw-r--r-- | test/ng/directive/inputSpec.js | 30 | 
2 files changed, 32 insertions, 2 deletions
| diff --git a/src/ng/directive/input.js b/src/ng/directive/input.js index 07b5f997..6e4961f8 100644 --- a/src/ng/directive/input.js +++ b/src/ng/directive/input.js @@ -544,8 +544,8 @@ function numberInputType(scope, element, attr, ctrl, $sniffer, $browser) {    });    if (attr.min) { -    var min = parseFloat(attr.min);      var minValidator = function(value) { +      var min = parseFloat(attr.min);        if (!ctrl.$isEmpty(value) && value < min) {          ctrl.$setValidity('min', false);          return undefined; @@ -560,8 +560,8 @@ function numberInputType(scope, element, attr, ctrl, $sniffer, $browser) {    }    if (attr.max) { -    var max = parseFloat(attr.max);      var maxValidator = function(value) { +      var max = parseFloat(attr.max);        if (!ctrl.$isEmpty(value) && value > max) {          ctrl.$setValidity('max', false);          return undefined; diff --git a/test/ng/directive/inputSpec.js b/test/ng/directive/inputSpec.js index c94eb9b8..c60960f0 100644 --- a/test/ng/directive/inputSpec.js +++ b/test/ng/directive/inputSpec.js @@ -667,6 +667,21 @@ describe('input', function() {          expect(scope.value).toBe(100);          expect(scope.form.alias.$error.min).toBeFalsy();        }); + +      it('should validate even if min value changes on-the-fly', function(done) { +        scope.min = 10; +        compileInput('<input type="number" ng-model="value" name="alias" min="{{min}}" />'); +        scope.$digest(); + +        changeInputValueTo('5'); +        expect(inputElm).toBeInvalid(); + +        scope.min = 0; +        scope.$digest(function () { +          expect(inputElm).toBeValid(); +          done(); +        }); +      });      }); @@ -686,6 +701,21 @@ describe('input', function() {          expect(scope.value).toBe(0);          expect(scope.form.alias.$error.max).toBeFalsy();        }); + +      it('should validate even if max value changes on-the-fly', function(done) { +        scope.max = 10; +        compileInput('<input type="number" ng-model="value" name="alias" max="{{max}}" />'); +        scope.$digest(); + +        changeInputValueTo('5'); +        expect(inputElm).toBeValid(); + +        scope.max = 0; +        scope.$digest(function () { +          expect(inputElm).toBeInvalid(); +          done(); +        }); +      });      }); | 
