To my knowledge, <output> tags do not have a "value" attribute.
In your form there are fields like this:
<output class="loan-amount" name="principal" id="principal" onChange="calculate();"></output>
Then, in the calculate function there is logic like this:
var principal = document.getElementById("principal").value;
Typically I see IE making 'assumptions' in how it interprets code, but this seems to be one instance where IE is doing the right thing and not assuming the field has a property which it does not.
I would write all of that much differently, but to make it work correctly move the name/id parameters from the <output> tags to the corresponding <input> tags. That way the code is referencing the value of the input fields.Go to the full post