我试图使用HTML按钮调用JavaScript函数。

代码如下:

<input type="button" value="Capacity Chart" onclick="CapacityChart();">

但它似乎不能正常工作。还有更好的办法吗?

这是链接:http://projectpath.ideapeoplesite.com/bendel/toolscalculators.html点击左下角的容量选项卡。如果值没有更改,该按钮应该生成一个警报,如果输入值,则应该生成一个图表。


当前回答

正如您所知道的,当您调用函数时,分号(;)不应该出现在按钮中。

它应该是这样的onclick="CapacityChart()"

然后这一切都应该工作:)

其他回答

我有一个智能函数调用回退按钮代码:

<br>
<p id="demo"></p><h2>Intelligent Button:</h2><i>Note: Try pressing a key after clicking.</i><br>
<button id="button" shiftKey="getElementById('button').innerHTML=('You're pressing shift, aren't you?')" onscroll="getElementById('button').innerHTML=('Don't Leave me!')" onkeydown="getElementById('button').innerHTML=('Why are you pressing keys?')" onmouseout="getElementById('button').innerHTML=('Whatever, it is gone.. maybe')" onmouseover="getElementById('button').innerHTML=('Something Is Hovering Over Me.. again')" onclick="getElementById('button').innerHTML=('I was clicked, I think')">Ahhhh</button>

我认为最好以一种不引人注目的方式添加javascript……

如果使用jQuery,你可以这样做:

<script>
  $(document).ready(function(){
    $('#MyButton').click(function(){
       CapacityChart();
    });
  });
</script>

<input type="button" value="Capacity Chart" id="MyButton" >

这看起来是正确的。我猜你用不同的名字定义了你的函数,或者在一个对按钮不可见的上下文中。请添加一些代码

你的代码在这一行失败了:

var RUnits = Math.abs(document.all.Capacity.RUnits.value);

我试着用firebug踩过它,它失败了。这应该能帮你解决问题。

你已经引用了jquery。你也可以在所有这些函数中使用它。它将显著地清理您的代码。

您的HTML和从按钮调用函数的方式看起来是正确的。

问题似乎出在CapacityCount函数上。我在Firefox 3.5的控制台中得到这个错误:“document。在bendelcorp.js的第759行,“所有都是未定义的”。

编辑:

看起来像文件。all是一个仅限ie的东西,是访问DOM的非标准方式。如果使用document.getElementById(),它应该可以工作。例子:. getelementbyid(“RUnits”)。value而不是document.all.Capacity.RUnits.value