【发布时间】:2017-04-29 06:49:31
【问题描述】:
我有一个绑定到特定类(附加到数字类型输入)的模糊事件的函数,该函数旨在强制保留两位小数。以下函数在 Chrome 中有效,但在 Firefox 中无效。
代码:
/**
* Force 2 decimal places for specified inputs
*
*/
$(document).on('blur', '.to-dec', function() {
// get value
var value = $(this).val();
// no value
if (!value) return;
// cast to 2 decimal places
value = parseFloat(value).toFixed(2);
// update value
$(this).val(value);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="number" class="to-dec" min="0" step="0.01" required>
如果我在设置之前输出value,我会得到预期值(即输入值为 3 时为 3.00)。
有人知道为什么 Firefox 会阻止设置这个值吗?在使用val() 设置值时,我已经尝试使用parseFloat()。
谢谢!
【问题讨论】:
-
看起来 Firefox 会自动删除
type=number中的无关紧要的数字 -
@Barmar 是的,我刚刚发现了 3 年前的这个错误报告:bugzilla.mozilla.org/show_bug.cgi?id=1003896 由于这个问题不会影响我的功能,我想我会让它飞起来。
标签: jquery html firefox floating-point