Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.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-输入类型数字隐藏小数位_Javascript_Html_Firefox - Fatal编程技术网

Javascript Firefox-输入类型数字隐藏小数位

Javascript Firefox-输入类型数字隐藏小数位,javascript,html,firefox,Javascript,Html,Firefox,我在网络表单上得到了一些信息。我在计算。当我计算东西时(使用JS),我每次都使用.toFixed(2)函数。 在IE和Chrome中,数字总是以2位小数显示。这就是我想要的在Firefox中,小数位被隐藏。 下面是我的控件示例: 输出: -IE:19.00 -FF:19 -铬:19.00 解决方案: 在帮助下找到并测试了可能重复的解决方案和标记的答案 检查 函数isNumber(n){ return!isNaN(parseFloat(n))和&isFinite(n); } 函数集(){ i

我在网络表单上得到了一些信息。我在计算。当我计算东西时(使用JS),我每次都使用.toFixed(2)函数。
在IE和Chrome中,数字总是以2位小数显示。这就是我想要的在Firefox中,小数位被隐藏。

下面是我的控件示例:


输出:
-IE:19.00
-FF:19
-铬:19.00

解决方案:

在帮助下找到并测试了可能重复的解决方案和标记的答案


检查
函数isNumber(n){
return!isNaN(parseFloat(n))和&isFinite(n);
}
函数集(){
if(document.getElementById(“test”).value.length-out.value.length-3){
oInput.value=oInput.value+'0';
}
返回put.value;
}

Firefox将您的值视为字符串而不是数字,尝试将值设置为19(不带引号),然后使用toFixed(2)将值设置为19.00以计算内容。

Firefox将您的值视为字符串而不是数字,尝试将值设置为19(不带引号),然后使用toFixed(2)应将值设置为19.00,用于计算材料。

基于OP在答案评论部分给出的小提琴的解决方案。

test2
输入类型更改为
text
。它会按照你想要的方式工作


基于OP在答案评论部分给出的小提琴的解决方案。

test2
输入类型更改为
text
。它会按照你想要的方式工作


我这样做了,但是我问题中显示的输出仍然是一样的。请您显示您的脚本好吗?使用Firefox,或者使用其他浏览器,我已经发布了一个编辑。检查是,但这意味着用户也可以输入字母。。我尽量避免这样做,因为这是一个创建账单的表单。我这样做了,但我问题中显示的输出仍然是一样的。你能显示你的脚本吗?使用Firefox,或者使用其他浏览器,我已经发布了一个编辑。检查是,但这意味着用户也可以输入字母。。我尽量避免这样做,因为这是一个创建账单的表单。我也找到了这个Q,但我认为它对我没有帮助。感谢你没有准确阅读。我想这可能会对我有所帮助,但这意味着我需要为每个输入添加一个事件侦听器?我得到了大约15个,用户可以添加更多到表单中…因为您使用此字段仅用于输出/显示目的,用户不能直接操作值(至少在您的小提琴中)-为什么在这里使用
数字
字段?简单的
文本
字段,问题就消失了–否?(这是否证明使用表单元素是合理的,可能是另一个问题。)实际上,我得到了一个创建账单的表单。这意味着用户可以在我的输入字段中输入数据,计算总和和其他内容。这就是我使用数字域的原因。我也发现了这个Q,但我没想到它会对我有帮助。感谢你没有准确阅读。我想这可能会对我有所帮助,但这意味着我需要为每个输入添加一个事件侦听器?我得到了大约15个,用户可以添加更多到表单中…因为您使用此字段仅用于输出/显示目的,用户不能直接操作值(至少在您的小提琴中)-为什么在这里使用
数字
字段?简单的
文本
字段,问题就消失了–否?(这是否证明使用表单元素是合理的,可能是另一个问题。)实际上,我得到了一个创建账单的表单。这意味着用户可以在我的输入字段中输入数据,计算总和和其他内容。这就是我使用数字字段的原因。
<input type="text" min="0" step="0.01" name="test" id="test" value="" pattern="[0-9]+([,\.][0-9]+)?" />
<input type="text" min="0" step="0.01" name="test2" id="test2" value="" readonly />
<button onclick="set()">check</button> 

function isNumber(n) {
    return !isNaN(parseFloat(n)) && isFinite(n);
}

function set (  ){
    if ( document.getElementById("test").value.length <= 0 ){ return; }

    document.getElementById("test").value = document.getElementById("test").value.replace(/,/g, '.');
    var fInput = parseFloat( document.getElementById("test").value );
    if ( isNumber( fInput ) == true ){
        document.getElementById("test2").value = checkZeros( document.getElementById("test") );
    }
}

function checkZeros ( oInput ){
    if ( oInput.value === '') {
        return;
    }

    oInput.value = parseFloat(  oInput.value ).toFixed(2);    
    oInput.value =  oInput.value.toString();

    if ( oInput.value.indexOf('.') === -1) {
         oInput.value =  oInput.value + '.00';
    }
    while ( oInput.value.indexOf('.') >  oInput.value.length - 3) {
         oInput.value =  oInput.value + '0';
    }

    return oInput.value;
}