gpt4 book ai didi

angularjs - 带有货币掩码指令的 Angular 输入字段,用于动态货币格式

转载 作者:行者123 更新时间:2023-12-02 19:59:17 24 4
gpt4 key购买 nike

我正在尝试使用 http://jquerypriceformat.com/ 为欧盟货币字段创建输入掩码

到目前为止,在我的指令中,应用了掩码的输入可以正确地向用户显示,但我相信有问题,因为 POST 值以奇怪的格式发送,与我们在输入字段中看到的完全不同。

我包含了priceformat.js

<script src="js/jquery.price_format.1.8.min.js"></script>

<input type="text" currency-input ng-model...>

还有 Angular :

app.directive('currencyInput', function() {
return {
require: '?ngModel',
link: function($scope, element, attrs, controller) {
element.priceFormat({
prefix: '',
centsSeparator: ',',
thousandsSeparator: '.'
});
}
};
});

我的输入正确显示了带有掩码的值,但在 POST 数据(由 Angular 调用)上它是一个不同的值,我缺少什么?

输入> 2.200,80 |帖子 > 22,0080

谢谢

最佳答案

从您的示例中我没有看到该链接返回任何内容。

我会写这样的指令:

.directive('format', ['$filter', function ($filter) {
return {
require: '?ngModel',
link: function (scope, elem, attrs, ctrl) {
if (!ctrl) return;


ctrl.$formatters.unshift(function (a) {
return $filter(attrs.format)(ctrl.$modelValue)
});


ctrl.$parsers.unshift(function (viewValue) {

elem.priceFormat({
prefix: '',
centsSeparator: ',',
thousandsSeparator: '.'
});

return elem[0].value;
});
}
};
}]);

演示 1 Fiddle

enter image description here

如果您想启动过滤器,请使用$formatters:

现在链接是:

link: function (scope, elem, attrs, ctrl) {
if (!ctrl) return;

var format = {
prefix: '',
centsSeparator: ',',
thousandsSeparator: ''
};

ctrl.$parsers.unshift(function (value) {
elem.priceFormat(format);

return elem[0].value;
});

ctrl.$formatters.unshift(function (value) {
elem[0].value = ctrl.$modelValue * 100 ;
elem.priceFormat(format);
return elem[0].value;
})
}

演示 2 Fiddle

关于angularjs - 带有货币掩码指令的 Angular 输入字段,用于动态货币格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19576202/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com