如何通过点击按钮计算节省?

时间:2015-08-31 07:14:40

标签: javascript html

我想计算滑块和文本框中数据的节省。 我不知道哪里出错了。我想计算点击Button的节省。如果我对JS函数

错了,请纠正我
<html>
<body>
<h1>Average Kilometres per day</h1>
<input type="range" id="kms" min="5" max="80" value="5" step="1" onchange="kms(this.value)"/>
<span id="kmsValue">0</span>
<br>
<h1>Number Of Years</h1>
<input type="range" id="yrs" min="1" max="5" value="1" step="0.5" onchange="yrs(this.value)"/>
<span id="yrsValue">0</span>
</h1>
<br>
<table>
<tr>
<td><h3>Cost Of Electricity</h3><input type="text" id="elec" value="4.5"/></td>
<td><h3>Cost Of Fuel</h3><input type="text" id="fuel" value="63"/></td>
<td><h3>Fuel Efficiency</h3><input type="text" id="feff" value="45"/></td>
</tr>
<tr>
<button onClick="savings(kms,yrs,coe,cof,eff)">See my savings</button>
</tr>
<tr>
<td><h1>You Save :</h1></td>
<span id="savings">Savings Amount</span>
</tr>
</table>
<script type="text/javascript">
function kms(kmsValue)
{
    document.getElementById("kmsValue").innerHTML=kmsValue;
}
function yrs(yrsValue)
{
    document.getElementById("yrsValue").innerHTML=yrsValue;
}
function savings(nok,noy,e,f,fe)
{
    var nok=document.getElementById("kmsValue").value;
    var noy=document.getElementById("yrsValue").value;
    var e=(document.getElementById("elec").value)/50;
    var eff=(document.getElementById("fuel").value) / (document.getElementById("feff").value);
    var finalsavings;
    if(nok<45)
    {
        finalsavings=(kms*yrs*365);
    }
    else
    {
        finalsavings=0;
    }
    document.getElementById("savings").innerHTML=finalsavings;
}
</script>
</body>
</html>

2 个答案:

答案 0 :(得分:1)

您正在使用未定义的参数调用保存功能:

<button onClick="savings(kms,yrs,coe,cof,eff)">See my savings</button>

参数 kms,yrs,coe,cof,eff 未在您的代码中定义,即使它们是在您的函数体中,您正在创建覆盖它们的新变量。

所以只需将您的代码更改为:

function savings() {...}和:<button onClick="savings();">它应该有用。

[编辑]还有 kms yrs 变量需要在某处定义。 另外,在计算 noy,e,f,fe 变量时,我真的不明白你要做什么,因为你没有使用它们,并且在你的函数执行结束时它们会超出范围...

答案 1 :(得分:1)

你的错误。

1。onClick="savings(kms,yrs,coe,cof,eff)"。在这一行中,您必须提供Id's个元素,但您提供了一些其他参数,例如coe,cof,eff
正确的代码 - &gt; onClick="savings(kms,yrs,elec,fuel,feff)"

2. <span id="savings">Savings Amount</span>必须留在td内。td以外的元素将被忽略。

3.要在input类型以外的元素中获取文本,您必须使用innerHTML

4. finalsavings=(kms*yrs*365);在这一行中你没有定义变量kmsyrs,而你正在尝试访问它们。 正确的代码 - &gt; finalsavings=(nok*noy*365);

Working Fiddle

建议:每当JS不起作用时,只需打开调试器&gt;控制台并查看错误。几乎所有调试器都会提供易于理解的错误。

注意:还有一件事情是在函数内部发送参数时不需要发送参数。