这是我正在使用的JSBin ... http://jsbin.com/duwiji/3/edit
它将获得两个乙烯基成本。问题是它只会添加整个数字并在总工作成本字段中显示。
注意错误在作业总计中... 9 x 33的总数应该是38.61美元,但它会给出37.00美元。
任何想法?
这是HTML
<p>Enter dimensions and tab through</p>
Dimensions <input type="text" id="dim01" onkeyup="multiplyDim();" />
X
<input type="text" id="dim02" onkeyup="multiplyDim();" />
<br>
= <input type="text" id="sqIn1" value="- - -" /> Sq. In.
<br />1st Color X .08/sq. in. = <input type="text" id="1clr-Cost" onfocus="multiplyCost01();" />
<br />Additional Colors <input type="text" id="qtyClrs" onkeyup="multiply();" /> X .05 = <input type="text" id="2clr-Cost" onfocus="multiplyCost02();" /><br />
<p>$37.00 <!-- HERE --></p>
Job Total = $<input type="text" id="JobCost" onfocus="sumJob();" /><br />
这是JS
function multiplyDim() {
var txtFirstNumberValue = document.getElementById('dim01').value;
var txtSecondNumberValue = document.getElementById('dim02').value;
var result = parseInt(txtFirstNumberValue) * parseInt(txtSecondNumberValue);
if (!isNaN(result)) {
document.getElementById('sqIn1').value = result;
}
}
function multiplyCost01() {
var txtFirstNumberValue = document.getElementById('sqIn1').value;
var result = parseInt(txtFirstNumberValue) * 0.08;
if (!isNaN(result)) {
document.getElementById('1clr-Cost').value = result.toFixed(2);
}
}
function multiplyCost02() {
var txtFirstNumberValue = document.getElementById('sqIn1').value;
var result = parseInt(txtFirstNumberValue) * 0.05;
if (!isNaN(result)) {
document.getElementById('2clr-Cost').value = result.toFixed(2);
}
}
function sumJob() {
var txtFirstNumberValue = document.getElementById('1clr-Cost').value;
var txtSecondNumberValue = document.getElementById('2clr-Cost').value;
var result = parseInt(txtFirstNumberValue) + parseInt(txtSecondNumberValue);
if (!isNaN(result)) {
document.getElementById('JobCost').value = '$'+ result.toFixed(2);
}
}
答案 0 :(得分:1)
您正在执行两个parseInt
操作并将它们添加到一起,然后获取该元素。 parseInt
将删除小数点后的两位数字。
<强>更新强>:
尝试parseFloat