У меня есть эта функция, чтобы писать только цифры и разрешать только 1 запятую (точки автоматически преобразуются в запятые).Только Javascript. Как иметь 2 фиксированных десятичных знака?
Мне нужно, чтобы число было равно 2 десятичным и не более. Если человек пишет 12,345
, 5 автоматически должен погаснуть.
Это функция:
function inputControl(input){
if($('.max-value-overflow').is(':visible')){
$('.max-value-overflow').hide();
}
var value = input.val();
var values = value.split("");
var update = "";
var transition = "";
var expression=/(^\d+$)|(^\d+\.\d+$)|[,\.]/;
var finalExpression=/^([0-9][0-9]*[,\.]?\d{0,3})$/;
for(id in values)
{
if (expression.test(values[id])==true && values[id]!='')
{
transition+=''+values[id].replace('.',',');
if(finalExpression.test(transition)==true)
{
update+=''+values[id].replace('.',',');
}
}
}
input.val(update);
}
Я попытался изменить последнюю строку следующим образом:
input.val((update).toFixed(2));
Но не получилось. Я продолжаю получать номер полностью (12 345) вместо того, чтобы забрать последний номер.
* «Но не сработало» * yey! : D Что именно? Какая ошибка? –
В указанном вами номере (12,345) нет десятичной точки. Если 5 удаляется (как вы сказали), тогда значение будет полностью изменено. Это нормально? –
Да @VimalanJayaGanesh Он должен стать 2 десятичным (но с запятой, а не точкой). –