2015-08-13 50 views
0

我在網絡表單上獲得了一些輸入。我正在計算這裏的東西。當我計算的東西(使用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; 
} 
+0

我發現這個問答太多,但我沒想到它會幫助我。 Sry沒有完全閱讀。我認爲這可以幫助我,但這意味着我需要爲每個輸入添加事件監聽器?我得到了其中的15個,用戶可以添加更多的表單... – Yaerox

+0

由於您只是使用此字段的輸出/顯示目的,用戶不能直接操縱該值(至少在你的小提琴) - 爲什麼使用這裏有個數字字段嗎?簡單的'文本'字段,問題不復存在 - 不是嗎? (這是否甚至證明使用表單元素_at all_可能是另一個問題。) – CBroe

+0

實際上我得到了一張用於創建帳單的表單。這意味着用戶可以在我的輸入字段中輸入數據並計算總和和其他內容。這就是爲什麼我使用數字字段。 – Yaerox

回答

1

解決方案基於OP在答案的評論部分給出的小提琴。

test2輸入類型更改爲text。它會以你想要的方式工作。

<input type="text" name="test2" id="test2" value="" readonly />

+0

我這樣做,但我的問題中顯示的Outpot仍然是一樣的。 – Yaerox

+0

你能告訴我你的劇本嗎? –

+0

http://jsfiddle.net/duuy884a/使用Firefox進行此操作,也許使用其他瀏覽器。 – Yaerox

0

Firefox中看到你的價值作爲一個字符串,而不是一個號碼,可以嘗試設置值爲19(不帶引號),然後利用toFixed(2)應將該值設置爲19,00計算的東西。