强制数输入有两位小数,只有两位

如何格式化以下输入以使价格被强制为两位小数并确保它只允许两个位置?

因此,例如,如果值为“1”,它将自动更改为“1.00”,“1.111”将更改为“1.11”。

我已经尝试过step =“0.01”,但这不起作用。

JSFiddle: https ://jsfiddle.net/eub68raq/。

HTML:

 

JS我试过: –

 var number = $('input#unitPrice').val(); $('input#unitPrice').innerHTML = parseFloat(Math.round(number * 100) / 100).toFixed(2); 

你可以这样做: –

 $(document).ready(function(){ $('input#unitPrice').blur(function(){ var num = parseFloat($(this).val()); var cleanNum = num.toFixed(2); $(this).val(cleanNum); }); }); 
   

试试这个:

 parseFloat(number.toFixed(2)); 

使用您的代码进行舍入,您想要的东西可能如下所示:

 $(document).ready(function(){ $('input#unitPrice').change(function(){ $(this).val(parseFloat(Math.round($(this).val() * 100) / 100).toFixed(2)); }); }); 

使用keyup是不是很幸运的选择,因为用户将无法更改输入值。 一旦他写了一些东西,它将被改为2位小数。 如果他试图删除一个数字,它将被放回。

如果您想要一个键盘行为,那么纠正该值必须延迟(例如使用setInterval)。