gpt4 book ai didi

javascript - 通过指令格式化为货币格式时光标位置发生变化

转载 作者:行者123 更新时间:2023-11-28 07:26:03 25 4
gpt4 key购买 nike

大家好,

我在输入元素上使用此货币格式指令,以便在输入时格式化为货币

        (function() {
var currencyFormatDir = function($filter) {
return {
require: '?ngModel',
link: function(scope, elem, attrs, ctrl) {
if (!ctrl)
return;


ctrl.$formatters.unshift(function(a) {
var abs = $filter(attrs.currencyFormat)(ctrl.$modelValue);
return $filter(attrs.currencyFormat)(ctrl.$modelValue);
});

ctrl.$parsers.unshift(function(viewValue) {
var plainNumber = viewValue.replace(/[^\d|\-+|\.+]/g, '');
elem.val($filter('number')(plainNumber));
if (plainNumber === 0) {
return "";
}
else {
return plainNumber;
}
});
}
};
};
angular.module('myApp').directive('currencyFormat', ['$filter', currencyFormatDir]);})();

但是如果我想更改阀门,例如:假设我有数字 156 我想将其更改为 12,356然后我将光标移动到图 1 的右侧并输入 23但如果我在这里这样做,那么我最终会得到数字 12,563发生这种情况是因为光标移至末尾。我不知道为什么会发生这种情况,有人可以帮我弄清楚为什么会发生这种情况。

最佳答案

如何设置一个超时,每次用户键入时都会重置该超时,以便在 1-2 秒后进行格式化?

关于javascript - 通过指令格式化为货币格式时光标位置发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29644059/

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