【发布时间】:2015-07-09 03:45:34
【问题描述】:
当我在输入框中输入 4 位数(不包括小数)或更多位数时,当我点击退出时,它突然从数字输入框中消失(模糊)。会不会是货币过滤器在做呢?
如果我将它记录到控制台,模型仍然保留该值,它只是从视图中消失。
<div class="input-group col-sm-2">
<div class="input-group-addon">$</div>
<input type="number" step="any" min="0" class="form-control" id="promoSetupFee" data-ng-model="fees.setup.promo" data-ng-format-curr data-ng-blur="updateSetupTotal()">
</div>
crtPromoDir.directive('ngFormatCurr', ['$timeout', '$filter', function($timeout, $filter)
{
return {
link: function(scope, element, attrs)
{
$timeout(function()
{
element.val($filter('currency')((element.val() || 0), '', 2));
});
element.blur(function()
{
element.val($filter('currency')((element.val() || 0), '', 2));
});
}
};
}]);
编辑:似乎数字类型的 HTML 输入不接受逗号,有什么办法可以从我拥有的指令中删除逗号?
编辑:
$scope.updateSetupTotal = function()
{
$scope.fees.setup.total = (parseFloat($scope.fees.setup.promo) || 0.00)+(parseFloat($scope.fees.setup.loc) || 0.00)+(parseFloat($scope.fees.setup.premium) || 0.00)+(parseFloat($scope.fees.setup.content) || 0.00);
$scope.updatePromoTotal();
};
编辑:快速修复是使用类型文本而不是数字作为输入,但这意味着模型现在将是字符串而不是浮点数。
【问题讨论】:
-
它不太可能是货币过滤器。
updateSetupTotal()这个函数是什么? -
查看我添加的编辑。
-
你为什么用浮点数来计算美元金额?
-
您应该使用
ng-model控制器并更新viewValue。方法不对 -
我之前没有使用货币过滤器,所以我忘了删除我现在要做的那些 parseFloat 函数。
标签: javascript html angularjs input filter