Javascript计算仅在IE中工作

时间:2013-05-22 19:31:49

标签: javascript forms

我正在尝试创建一个表单,以便用户可以输入某些信息,JavaScript将为它们进行计算。我一直在尝试使用http://demo.rsjoomla.com/calculation-form-example(左边的那个)来开始基础知识,我可以从那里进行操作。到目前为止,它只在IE中工作。

以下是我的代码的基本布局:

HTML

<input type="number" name="income1" value="0" onkeyup="update()">
<input type="number" name="income2" value="0" onkeyup="update()">
<input type="number" name="income3" value="0" onkeyup="update()">

的JavaScript

var op1=document.getElementById('income1');
var op2=document.getElementById('income2');
var result=document.getElementById('income3');
if(op1.value=="" || op1.value!=parseFloat(op1.value)) op1.value=0;
if(op2.value=="" || op2.value!=parseFloat(op2.value)) op2.value=0;
result.value=0;
result.value=parseInt(result.value);
result.value=parseInt(result.value)+parseInt(op1.value) - parseInt(op2.value);

2 个答案:

答案 0 :(得分:5)

您编写的代码正在寻找ID

document.getElementById('income1');

输入中的id在哪里?

<input type="number" name="income1" value="0" onkeyup="update()">

名称与id不同。

你的parseFloat检查,你可能应该看看isNaN()。您在底部使用parseInt(),而您正在使用parseFloat()以上!

答案 1 :(得分:0)

如果您要执行getElementById,则需要在元素中包含ID。

<input type="number" id="income1" value="0" onkeyup="update()">

var op1=document.getElementById('income1');

或者您可以使用jQuery(需要包含jQuery源代码):

<input type="number" name="income1" value="0" onkeyup="update()">

var op1 = ${"input[name=income1]").val();

或者,您可以这样做,假设您只有一个名为income1的元素。这不是一个很好的方法,但它应该工作。

<input type="number" name="income1" value="0" onkeyup="update()">

var op1=document.getElementsByName('income1')[0];