计算器无法使用javascript

时间:2013-04-12 14:08:58

标签: javascript

我搜索了互联网,图书馆和其他十几个无法提供答案的人。这是我的.js文件

// JavaScript Document
function calculate()
{
var form = document.getElementById("calc");

var text1 = document.getElementById("calculator9").value-0;
var text2 = document.getElementById("calculator13").value-0;
var x = parseFloat(text1.value);
var y = parseFloat(text2.value);  
var out = document.getElementById("calculator21").value = "$" + ((x * y) * 0.0016) - ((x * y) * 0.00085);
}

这是我在计算器页面上的表格

<form id="calc" name="calc" method="post" action=""> 
<div id="calculator8"> </div>
<div id="calculator9"><input type="text" name="x" class="box1" /> </div>
<div id="calculator10"> </div>
<div id="calculator11"> </div>
<div id="calculator12"> </div>
<div id="calculator13"><input type="text" name="y"  class="box2" /> </div>
<div id="calculator14"> </div>
<div id="calculator15"> </div>
<div id="calculator16"> </div>
<div id="calculator17"><input type="submit" name="submit"  class="button"   value="" onclick="calculate()" /></div>
<div id="calculator18"> </div>
<div id="calculator19"> </div>
<div id="calculator20"> </div>
<div id="calculator21"><input type="text" name="text3"  class="box3" readonly="readonly" value="" />   </div>
<div id="calculator22"> </div>
</form>

任何人都可以帮助我......这真让我疯狂!

2 个答案:

答案 0 :(得分:1)

您在脚本中为输入字段提供了错误的ID

var text1 = document.getElementById("calculator9").value;

calculator9是div而不是输入。所以试试这个

<div id="calculator13"><input type="text" id="txt9" name="y"  class="box2" /> </div>

并像这样使用

var text1 = document.getElementById("txt9").value;

您的脚本中还存在其他问题,例如

var x = parseFloat(text1.value);

此处text1.value未定义,仅使用text1

你可以在这里找到工作示例

JS Fiddle Demo

答案 1 :(得分:0)

您没有取消提交按钮的点击操作,因此表单正在提交。

<form id="calc" name="calc" method="post" action="" onsubmit="return false"> 

其他问题

var text1 = document.getElementById("calculator9").value-0;  <What is with the -0
var text2 = document.getElementById("calculator13").value-0;  <9 and 13 table cells, not inputs, they have no value!
var x = parseFloat(text1.value);  <-- text1 should be a string, not a dom object
var y = parseFloat(text2.value);  

应该看起来像

var text1 = document.getElementById("textbox1_id").value;
var text2 = document.getElementById("textbox2_id").value;
var x = parseFloat(text1);
var y = parseFloat(text2);  
.../
var out = document.getElementById("textbox3_id").value

和HTML

<input type="text" name="x" class="box1" id="textbox1_id"/>
<input type="text" name="y" class="box2" id="textbox2_id"/>
<input type="text" name="text3"  class="box3" readonly="readonly" value="" id="textbox3_id"/>