我有一个函数绑定到特定类的模糊事件(附加到数字类型输入),这是为了强制两位小数点。以下功能适用于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会阻止设置这个值吗?在用parseFloat()设置值时,我已经尝试过使用val()。
谢谢!
发布于 2017-04-28 21:28:10
使其在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">
https://stackoverflow.com/questions/43688833
复制相似问题