0

我对 Javascript 还是很陌生,我在让函数正常运行时遇到了一些麻烦。这是我所拥有的:

<script type='text/javascript'>        
    function GravityCalc (ratio, name)
    {
        Weight = getElementById('WeightBox').value * ratio;
        document.getElementById('WeightText').innerHTML = 'You would weigh ' + weight + ' on ' + name;
    }
</script>

Enter Weight: <input type='text' id='WeightBox' name='Weight'><br>
<button onclick='GravityCalc(2.3,Jupiter)'>calculate</button>
<div id='WeightText'> </div>

表单显示完美,但按下按钮时没有任何反应。还应该注意的是,名称和比率参数最终将被 PHP 解析。

4

3 回答 3

1

确保在 html 页面的头部包含 javascript。

    function calc (ratio, name) {
        var weight = document.getElementById('WeightBox').value * ratio;
        document.getElementById('WeightText').innerHTML = "You would weigh " + weight + " on " + name;
    }

并将 HTML 更改为:

Enter Weight: <input type='text' id='WeightBox' name='Weight'><br>
<button onclick="calc(2.3, 'Jupiter')">calculate</button>
<div id='WeightText'> </div>
于 2013-11-13T22:24:08.503 回答
1

javascript变量区分大小写!你的 Ws 不匹配。我也强烈推荐使用var显式声明你的变量。

    var weight = getElementById('WeightBox').value * ratio;
    document.getElementById('WeightText').innerHTML = 'You would weigh ' + weight + ' on ' + name;

另外,正如评论者指出的那样,字符串必须用引号括起来。

<button onclick='GravityCalc(2.3,"Jupiter")'>calculate</button>
于 2013-11-13T22:12:37.207 回答
1

你有几件事不对...

  1. “重量”应该是“重量”。JS 是区分大小写的,你在一行中使用 Camel 大小写,在另一行中使用 Pascal 大小写。
  2. 您需要使用“document.getElementById”。只是“getElementById”不适用于所有浏览器。
  3. 您需要声明“重量”变量。
  4. 如果您愿意,dom 元素中的值将存储为字符串或字符数组,因此您需要将其解析为 int,如下所示,parseInt(document.getElementById('WeightBox').value)

这是我的 JSFiddle... http://jsfiddle.net/EH5j6/

function GravityCalc (ratio, name)
        {
            var weight;
            weight = parseInt(document.getElementById('WeightBox').value) * ratio;
            document.getElementById('WeightText').innerHTML = 'You would weigh ' +  weight + ' on ' + name;
        }
于 2013-11-13T22:28:45.757 回答