Javascript Firefox没有读取尾随的零,但chrome是
我有一个例子,用户可以输入Javascript Firefox没有读取尾随的零,但chrome是,javascript,jquery,html,firefox,Javascript,Jquery,Html,Firefox,我有一个例子,用户可以输入5.000或5.0,而我的现有代码将输出5.000,除非您使用的是Firefox,它会显示5。下面是我的代码 Util.fixPrecisionCallback = function (precision, keepLeadingZeros) { return function (e) { var value = $(e.target).val(), formatted = Util.formatPrecision(val
5.000
或5.0
,而我的现有代码将输出5.000
,除非您使用的是Firefox,它会显示5
。下面是我的代码
Util.fixPrecisionCallback = function (precision, keepLeadingZeros) {
return function (e) {
var value = $(e.target).val(),
formatted = Util.formatPrecision(value, precision, keepLeadingZeros);
if (value !== formatted) {
e.stopPropagation();
$(e.target).val(formatted)
}
}
};
Util.formatPrecision = function (value, precision, keepLeadingZeros) {
var fval = parseFloat("" + value);
fval = isNaN(fval) ? 0 : fval;
fval = fval.toFixed(precision);
if (!keepLeadingZeros)
return fval;
var leadingZeros = (value.match(Util.LEADING_ZEROS) || []).join("");
var fvalLeadingZeros = (fval.match(Util.LEADING_ZEROS) || []).join("")
if (fvalLeadingZeros.length < leadingZeros.length)
{
return leadingZeros.substring(0, leadingZeros.length - fvalLeadingZeros.length) + fval;
}
else
{
return fval;
}
};
这个页面在Chrome上运行良好,但由于某些原因不能与firefox配合使用[没有错误,但总是显示5
,而不是5.000
]。我还有其他页面,在这两种浏览器上,锅炉板代码都可以正常工作,但就我个人而言,我无法找出导致此问题的原因。Firefox通过简化输入框中的数字来“帮助”您。删除type=“number”
属性,它将停止这样做
不幸的是,任何适用于数字输入的东西
该问题的一些解决方案可以在中找到
_fixPrecision3 = Util.fixPrecisionCallback(3);
$("#boxScanWidthInput", self.displayContainer).on("focusout", function () {
//stuff
}).on("change", _fixPrecision3);