0

此代码适用于 Chrome,但不适用于 IE。为什么??这很简单,但我没有看到我的错误。

<script>

function calc() {

        var summ = (parseFloat(q2.value) + parseFloat(q3.value) + parseFloat(q4.value)+ ( parseFloat(qn2.value) + parseFloat(qn3.value) + parseFloat(qn4.value) ) * 6 ) * 1.13;

        summ = parseFloat(summ).toFixed(2);

        document.getElementById('sum2').innerHTML = summ;

        alert(summ);
}

</ script>

和html(删除所有文本,只输入)

<form method="" action="">

<input type="number" onClick="calc();" onChange="calc();" onblur="if (this.value == '') {this.value = '00.00';}" value="00.00" maxlength="14" size="4" id="q2"/>

<input type="number" onClick="calc();" onChange="calc();" onblur="if (this.value == '') {this.value = '00.00';}" value="00.00" maxlength="14" size="4" id="q3"/>

<input type="number" onClick="calc();" onChange="calc();" onblur="if (this.value == '') {this.value = '00.00';}" value="00.00" maxlength="14" size="4" id="q4"/>

<input type="number" onClick="calc();" onChange="calc();" onblur="if (this.value == '') {this.value = '0';}" value="0" maxlength="14" size="4" id="qn2"/>

<input type="number" onClick="calc();" onChange="calc();" onblur="if (this.value == '') {this.value = '0';}" value="0" maxlength="14" size="4" id="qn3"/>

<input type="number" onClick="calc();" onChange="calc();" onblur="if (this.value == '') {this.value = '0';}" value="0" maxlength="14" size="4" id="qn4"/>


<p><span id="sum2" style="color: red; font-weight: bold;">00.00</span> the result</p>   

<center><input type='button' onclick='calc()' value='Обновить'/></center>

</ html>

我究竟做错了什么?我已经发现 IE 不喜欢name="..." tag并从代码中删除所有这些。

4

1 回答 1

3

查看控制台,它告诉你有错误

SCRIPT5009: 'q2' is undefined show, line 22 character 9

不要直接通过 id 引用元素,您需要使用 document.getElementById()

你需要做的是

parseFloat(document.getElementById("q2").value) 
于 2012-11-07T13:29:17.357 回答