我在網絡表單上獲得了一些輸入。我正在計算這裏的東西。當我計算的東西(使用JS)我每次都使用.toFixed(2)函數。
在IE和Chrome中,總是顯示2位小數。這就是我想要的。 在Firefox中,小數位正在隱藏。Firefox - 輸入類型數字隱藏小數位
這裏我的控制的一些示例:<input type="number" value="19.00" name="tax" id="tax" min="0" step="0.01" class="input_number" tabindex="3">
輸出:
- IE:19.00
- FF:19
- 鉻:19.00
解決方案:
解決方案找到並測試與可能的重複的幫助e和明顯的答案。
http://jsfiddle.net/duuy884a/7/
<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;
}
我發現這個問答太多,但我沒想到它會幫助我。 Sry沒有完全閱讀。我認爲這可以幫助我,但這意味着我需要爲每個輸入添加事件監聽器?我得到了其中的15個,用戶可以添加更多的表單... – Yaerox
由於您只是使用此字段的輸出/顯示目的,用戶不能直接操縱該值(至少在你的小提琴) - 爲什麼使用這裏有個數字字段嗎?簡單的'文本'字段,問題不復存在 - 不是嗎? (這是否甚至證明使用表單元素_at all_可能是另一個問題。) – CBroe
實際上我得到了一張用於創建帳單的表單。這意味着用戶可以在我的輸入字段中輸入數據並計算總和和其他內容。這就是爲什麼我使用數字字段。 – Yaerox