Разделение на разряды как?

Аватар пользователя Babich Babich 28 октября в 12:57

Здравствуйте, всем. Прошу помощи.
Есть необходимость в вебформе сделать в input range разделение числа на разряды, для удобного восприятия. Форма сделана с помощью модуля webform 8.x-5.22

Сейчас

Нужно

Комментарии

Аватар пользователя Babich Babich 28 октября в 14:46

Добавил вот такой код в customjs.js своей темы
Сначала код «Эта функция округляет числа до двух десятичных знаков и гарантирует, что возвращаемое значение имеет два десятичных знака». А затем этот код https://css-tricks.com/snippets/javascript/comma-values-in-numbers/

function CurrencyFormatted(credit_amount) {
        var i = parseFloat(amount);
        if(isNaN(i)) { i = 0.00; }
        var minus = '';
        if(i < 0) { minus = '-'; }
        i = Math.abs(i);
        i = parseInt((i + .005) * 100);
        i = i / 100;
        s = new String(i);
        if(s.indexOf('.') < 0) { s += '.00'; }
        if(s.indexOf('.') == (s.length - 2)) { s += '0'; }
        s = minus + s;
        return s;
}

function CommaFormatted(credit_amount) {
        var delimiter = ","; // replace comma if desired
        var a = amount.split('.',2)
        var d = a[1];
        var i = parseInt(a[0]);
        if(isNaN(i)) { return ''; }
        var minus = '';
        if(i < 0) { minus = '-'; }
        i = Math.abs(i);
        var n = new String(i);
        var a = [];
        while(n.length > 3) {
                var nn = n.substr(n.length-3);
                a.unshift(nn);
                n = n.substr(0,n.length-3);
        }
        if(n.length > 0) { a.unshift(n); }
        n = a.join(delimiter);
        if(d.length < 1) { amount = n; }
        else { amount = n + '.' + d; }
        amount = minus + amount;
        return amount;
}

Не работает(( Все кеши чистил.

Аватар пользователя Babich Babich 28 октября в 14:54

Вот такой код пробовал

function CurrencyFormatted(credit_amount) {
        var i = parseFloat(credit_amount);
        if(isNaN(i)) { i = 0.00; }
        var minus = '';
        if(i < 0) { minus = '-'; }
        i = Math.abs(i);
        i = parseInt((i + .005) * 100);
        i = i / 100;
        s = new String(i);
        if(s.indexOf('.') < 0) { s += '.00'; }
        if(s.indexOf('.') == (s.length - 2)) { s += '0'; }
        s = minus + s;
        return s;
}

function CommaFormatted(credit_amount) {
        var delimiter = ","; // replace comma if desired
        var a = credit_amount.split('.',2)
        var d = a[1];
        var i = parseInt(a[0]);
        if(isNaN(i)) { return ''; }
        var minus = '';
        if(i < 0) { minus = '-'; }
        i = Math.abs(i);
        var n = new String(i);
        var a = [];
        while(n.length > 3) {
                var nn = n.substr(n.length-3);
                a.unshift(nn);
                n = n.substr(0,n.length-3);
        }
        if(n.length > 0) { a.unshift(n); }
        n = a.join(delimiter);
        if(d.length < 1) { credit_amount = n; }
        else { credit_amount = n + '.' + d; }
        credit_amount = minus + credit_amount;
        return credit_amount;
}

Тоже не хочет работать.