jQuery - 在 Firefox 中将数字输入值设置为 float



我有一个绑定到特定类(附加到数字类型输入)的模糊事件的函数,旨在强制执行两个小数位。以下功能在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.00 时为 3)。

有人知道为什么 Firefox 会阻止设置此值吗?我已经尝试在设置带有val()的值时使用parseFloat().

谢谢!

使其在 FireFox 中工作的一种奇怪方法是使输入类型为"text",并且仍然保持类型编号行为,只需对代码进行轻微修改,例如如果值为 NaN,则清除输入。

$(document).on('blur', '.to-dec', function() {
// get value
var value = $(this).val();
if (isNaN(value)) {
$(this).val('');
} else if (!value) {
// no value
return;
} else {
// 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="text" class="to-dec" min="0" step="0.01">

相关内容

  • 没有找到相关文章

最新更新