我有一个简单的表格,有5个文本框和3个答案(也有文本框)。该表格使用数字输入为用户计算结果。我的问题是我的计算在IE中不起作用,但在Chrome和Firefox中都能正常工作。

怎么了?

这是我的功能:

function addNumbers()
{
    var val1 = Number(document.getElementById("value1").value);
    var val2 = Number(document.getElementById("value2").value);
    var val3 = Number(document.getElementById("value3").value);
    var val4 = Number(document.getElementById("value4").value);
    var val5 = Number(document.getElementById("value5").value);
    var val6 = '100';
    var ansD1 = document.getElementById("answer1");
    ansD1.value = Number((val1 * val2) * (val4 / val6));
    var ansD2 = document.getElementById("answer2");
    ansD2.value = Number((val1 * val3) * (val5 / val6));
    var ansD3 = document.getElementById("answer3");
    ansD3.value = Number (ansD1.value - ansD2.value);
}

最佳答案

更改此行:

var val6 = '100';


对此:

var val6 = 100;


您希望所有值都是实际数字(而不是字符串),以便可以对它们进行数学运算。

另外,由于这些数字数学运算的结果已经是一个数字,因此您无需在这些行中使用Number()。再加上对答案字段的分配,无论如何都将结果转换为字符串:

ansD1.value = Number((val1 * val2)*(val4/val6));


他们可以是这样的:

ansD1.value = (val1 * val2)*(val4/val6);


修改后的代码在IE的http://jsfiddle.net/jfriend00/5WFRA/中可以正常工作。

10-07 19:26
查看更多