1
我得到了一個帶有一些輸入控件的網頁p.e.爲減法。使用不同的瀏覽器解析JavaScript中的浮點數
<table>
<tr>
<td><b>Value 1</b></td>
<td />
<td><b>Value 2</b></td>
<td><b>Result</b></td>
</tr>
<tr>
<td>
<%-- step="0.01" because of Firefox-browser --%>
<input type="number" id="value11" oninput="SubtractionWithParameters(document.getElementById('value11').value, document.getElementById('value21').value, 'result', 2)" step="0.01" />
</td>
<td> - </td>
<td>
<input type="number" id="value21" oninput="SubtractionWithParameters(document.getElementById('value11').value, document.getElementById('value21').value, 'result', 2)" step="0.01" />
</td>
<td>
<input type="number" id="result" step="0.01" />
</td>
</tr>
</table>
對於減法我所定義的JavaScript函數SubtractionWithParameters其調用函數減法。 在輸入控件「value11」和「value21」中輸入數字,點和/或逗號時,調用SubtractionWithParameters函數並立即計算結果。
//Subtracts the given parameters and displays the result in the input-Control with the given controlname.
function SubtractionWithParameters(value1, value2, resultControlName, decimalNumber) {
decimalNumber = typeof decimalNumber == 'undefined' ? 0 : decimalNumber;
document.getElementById(resultControlName).value = Subtraction(value1, value2).toFixed(decimalNumber);
}
//Subtracts the given parameters and returns the result.
function Subtraction(value1, value2) {
if (isNaN(value1) || value1 == "") { value1 = 0; }
if (isNaN(value2) || value2 == "") { value2 = 0; }
var result = parseFloat(value1) - parseFloat(value2);
return result;
}
現在的問題是,IE和Firefox期待不同的輸入爲一個floatnumber。當我使用Firefox並在我的一個輸入控件中輸入一個包含一個點的floatnumber時,什麼也不會發生。 我如何處理這個在我的功能減法?
在此先感謝!
如果IE和FF需要不同的格式,它們可能會設置爲不同的語言環境。 – ssube
根據[這個問題](http://stackoverflow.com/questions/2085275/what-is-the-decimal-separator-symbol-in-javascript)和[this one]的答案(http:// stackoverflow.com/questions/12694455/javascript-parsefloat-in-different-cultures),''parseFloat()'特別需要點,並且不會使用逗號,而不考慮語言環境。但數字後的逗號不會導致錯誤:'parseFloat(「12,34」)'應該返回'12'。 – nnnnnn
非常感謝!添加「.replace(',','。')」給函數賦值有所幫助。 –