如果输入值达到 {max},如何将输入值更改为最大值 AngularJS

How to change input value to max value if it reaches the {max} AngularJS

我有一个表格,它包含输入字段,您可以在其中输入金额。它有最大的吸引力。如果用户输入的金额大于最大值,我想设置 ng-model 参数值以设置最大值,这是 RESTFull API.

的响应

直接将 JSON 对象值赋给 max 属性。最大值作为 API.

的响应以字符串形式键入

我在分配属性值时使用了货币过滤器。

如何将 max 属性值设置为 ngModel 对象的值?如果用户输入大于最大值的值?有什么方法可以立即更改并同时更新输入字段吗?

另外请告诉我,如果我使用过滤器是真的吗?还是不?

<input type="text" name="payableamount" class="form-control input-lg"
                       min="{{amount | currency:'':2}}"
                       max="{{billObj.amount | currency:'':2}}"
                       ng-model="form.bidAmount"
                       ng-required="true" ui-number-mask>

存储您从 API 获得的 maxAmount 值并在 'checkAmount' 函数中验证它

1.Using ngKeyup:

//html    
<input ng-model="amount" ng-keyup="checkAmount($event,amount)"/>

//js
function MyCtrl($scope, $log) {

    $scope.checkAmount = function(e,amt) {
      if(amt>10){ //assuming maxAmount is 10
          $scope.amount = 10;
          e.preventDefault();
        }
    };
}

2。使用指令,

<input check-max ng-model="amount"/>


myApp.directive('checkMax', function() {
    return {
    restrict: 'AE', //attribute or element,
    require: 'ngModel',
    link:function(s,e,a,ngModel){
        e.bind('keyup',function(event){
        if(ngModel.$modelValue>10){
          event.preventDefault();
          ngModel.$setViewValue(10);
          ngModel.$render();
        }
      });
    }
  };
});

Fiddle(使用 ng-keyup):http://jsfiddle.net/r74a5m25/202/

Fiddle(使用指令):http://jsfiddle.net/r74a5m25/203/