如何在jquery中将文本输入格式化为十进制

时间:2014-04-02 18:56:38

标签: jquery decimal

我有这个jQuery代码:

$('#amount').change(function() {
  $('#amount').val( $('#amount').val().toFixed(2) );
}); // end .change()

我需要它以decmial格式格式化输入。可以在jquery中完成吗?

实施例: 在文本框中,

如果我输入5,我希望该值显示为5.00

如果我输入5.1,我希望该值显示为5.10

如果我输入5.12,我希望该值显示为5.12

似乎是一个简单的需求。我必须遗漏一些东西,因为我无法想象javascript或jquery不提供执行此操作的功能。

2 个答案:

答案 0 :(得分:4)

元素值始终是字符串,而toFixed仅适用于数字,因此您必须先将值转换为数字,然后才能在其上运行toFixed

$('#amount').on('change', function() {
    this.value = parseFloat(this.value).toFixed(2);
});

FIDDLE

答案 1 :(得分:1)

以此为基础:

Math.round(num * 100) / 100

所以你的代码将是:

$('#amount').change(function() {
    $('#amount').val( Math.round($('#amount').val() * 100) / 100 );
});