Здравствуйте, всем. Прошу помощи.
Есть необходимость в вебформе сделать в input range разделение числа на разряды, для удобного восприятия. Форма сделана с помощью модуля webform 8.x-5.22
Добавил вот такой код в 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 =newString(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 =newString(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; }
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 =newString(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 =newString(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; }
Комментарии
гуглится: https://stackoverflow.com/questions/8677805/formatting-numbers-decimal-p...
https://css-tricks.com/snippets/javascript/comma-values-in-numbers/
Вставил этот код в customjs.js своей темы
не работает.
Вот так выводится значение
<output class="currency" for="credit_amount" data-display="below" style="top: 10px; left: 39px;">3600000</output>
Добавил вот такой код в customjs.js своей темы
Сначала код «Эта функция округляет числа до двух десятичных знаков и гарантирует, что возвращаемое значение имеет два десятичных знака». А затем этот код https://css-tricks.com/snippets/javascript/comma-values-in-numbers/
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;
}
Не работает(( Все кеши чистил.
Вот такой код пробовал
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;
}
Тоже не хочет работать.