Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.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 Firefox没有读取尾随的零,但chrome是_Javascript_Jquery_Html_Firefox - Fatal编程技术网

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);