Javascript Firefox-输入类型数字隐藏小数位
我在网络表单上得到了一些信息。我在计算。当我计算东西时(使用JS),我每次都使用.toFixed(2)函数。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
在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;
}