Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 强制数字输入有两个小数位且只有两个小数位_Javascript_Jquery_Html - Fatal编程技术网

Javascript 强制数字输入有两个小数位且只有两个小数位

Javascript 强制数字输入有两个小数位且只有两个小数位,javascript,jquery,html,Javascript,Jquery,Html,如何设置以下输入的格式,使价格强制有两位小数,并确保它只允许两位小数 因此,例如,如果值为“1”,它将自动更改为“1.00”,而“1.111”将更改为“1.11” 我已经尝试了step=“0.01”,但这不起作用 JSFIDLE: HTML: <input data-number="Quantity must be a number" data-required="Unit price required" min="0" step="0.01" id="unitPrice" value="

如何设置以下输入的格式,使价格强制有两位小数,并确保它只允许两位小数

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

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

JSFIDLE:

HTML:

<input data-number="Quantity must be a number" data-required="Unit price required" min="0" step="0.01" id="unitPrice" value="" type="number" name="unitPrice" placeholder="Unit Price"/>
试试这个:

parseFloat(number.toFixed(2));

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

$(document).ready(function(){
    $('input#unitPrice').change(function(){
        $(this).val(parseFloat(Math.round($(this).val() * 100) / 100).toFixed(2));
    });
});
使用
keyup
进行此操作不是非常幸运的选择,因为用户将无法更改输入值。他一写东西就会改成小数点后两位。如果他试图删除一个数字,它将被放回原处


如果需要键控行为,则必须延迟(例如通过使用setInterval)来更正该值。

您可以按如下方式执行:-

$(文档).ready(函数(){
$('input#unitPrice').blur(函数(){
var num=parseFloat($(this.val());
var cleanNum=num.toFixed(2);
$(this).val(cleanNum);
});
});

完美。完全按照needed@Nick很高兴帮助你:):)
$(document).ready(function(){
    $('input#unitPrice').change(function(){
        $(this).val(parseFloat(Math.round($(this).val() * 100) / 100).toFixed(2));
    });
});