简单的和javascript函数在IE中不起作用

时间:2012-11-07 13:24:38

标签: javascript internet-explorer google-chrome

此代码适用于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并从代码中删除所有这些内容。

1 个答案:

答案 0 :(得分:3)

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

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

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

您需要做的是

parseFloat(document.getElementById("q2").value)