"您必须输入有效值"表格提交中的数字输入?

时间:2017-08-07 08:26:04

标签: javascript angularjs

我正在使用Angular JS v1.5.5并定义了一个自定义输入字段类型货币,允许输入大数字,例如1.5k或3.4M或4T等。我完成了定义自定义指令currency。问题是,即使显示显示值并且模型包含有效值,并且按下表单submmit,我也会收到You must enter a valid value错误。

这是使用IE DOM资源管理器显示的输入字段配置:

<div class="input-group">
  <input name="tradeParameters.tradeNotional" class="form-control ng-not-empty ng-valid ng-valid-required ng-dirty ng-valid-number ng-touched" id="tradeParameters_tradeNotional" required="required" type="number" step="1.0E-5" value="" ng-model="inSampleFormData.tradeParameters.tradeNotional" ng-required="true" currency="">
  <span class="input-group-addon">$</span>
</div>

MainModule.ts定义过滤器和指令,如下所示:

.filter('identity', ['$filter', function ($filter) {
    return function(input) {
        return input;
    };
}])
.directive("currency", function($filter, formatServices: FormatServices){
    var p = function(viewValue){
        if (angular.isDefined(viewValue)) {
            return $filter('identity')(formatServices.currParse(viewValue));
        }
    };

    var f = function(modelValue){
        if (angular.isDefined(modelValue)) {
            return $filter('identity')(formatServices.currFormat(modelValue));
        }
    };

    return {
        require: 'ngModel',
        link: function(scope, ele, attr, ctrl){
            ctrl.$parsers.unshift(p);
            ctrl.$formatters.unshift(f);
        }
    };
})

enter image description here

0 个答案:

没有答案