从文件调用Javascript函数

时间:2017-09-12 04:06:38

标签: javascript

所以...我的作业说......

创建一个名为calcBMI()的函数,该函数使用权重和高度文本框中的值执行计算,并将结果分配给BMI文本框。 使用parseInt()函数将值转换为整数。 通过使用documentobject.getElementByID(name)和每个文本框的value属性引用函数内的文本框(换句话说,不要使用函数参数AKA将值传递给函数)。 添加一个事件监听器来调用calcBMI()函数

我在这做过。请记住,html中正在引用javascript文件。每当我按下计算按钮时都没有任何反应。

  function calcBMI() {


    var weight = parseInt(documentobject.getElementByID("weight"));

    var height = parseInt(documentobject.getElementByID("height"));

    var result = (weight * 703) / (height * height);

    var textbox = documentobject.getElementById('Result');

    textbox.value = result;
}


 document.getElementById("submit").
      addEventListener("click", calcBMI(), false);

3 个答案:

答案 0 :(得分:2)

我看到了三件事:

  1. 访问DOM对象而不是其值
  2. 使用documentobject而不是document
  3. 调用函数而不是将其作为回调传递。
  4. 解决DOM元素问题:
    var weight = parseInt(document.getElementByID("weight").value)
    对其他变量使用相同的。

    看起来您可能正在调用calcBMI()而不是将其作为回调calcBMI发送 .addEventListener("click", calcBMI, false);

    查看MDN on event listeners

    您似乎引用了documentobject而不是document

    var textbox = documentobject.getElementById('Result');

    试试这个:
    var textbox = document.getElementById('Result');

    希望这有帮助!

答案 1 :(得分:1)

调用addEventListener()时,需要传递对回调函数的引用。您正在调用该函数,这是不正确的。试试这个:

document.getElementById("submit").addEventListener("click", calcBMI, false);

答案 2 :(得分:0)

您可以将dom元素分配给weight和height变量。你应该得到文本字段的值。

function calcBMI() {
    var weight = parseInt(document.getElementByID("weight").value);
    var height = parseInt(document.getElementByID("height").value);
    var result = (weight * 703) / (height * height);
    var textbox = document.getElementById('Result');
    textbox.value = result;
}