首页 > 解决方案 > javascript的基本条件

问题描述

我正在尝试制作一个 IMC 计算器,根据您的 IMC 值显示警报。但是,当我尝试根据身体状态为显示警报设置条件时,它并没有出现

var k =
  { nombre       : 'Antonio'
  , peso         : 85
  , altura       : 1.80
  , masacorporal : function ()
    {
    var r = this.peso / (this.altura*this.altura);
    return Math.round(r*100)/100;
    }
  }
function f()
  {
  k.peso   = document.getElementById("dato1").value;
  k.altura = document.getElementById("dato2").value;
  
  document.getElementById("resultado").innerHTML = k.masacorporal();
  
  var error = 0;
  if (k.peso == '' && error == 0)
    {
    alert("El valor del peso es obligatorio");
    k.peso.focus();
    error=1;
    }
  if (k.altura=='' && error==0)
    {
    alert("El valor de la altura es obligatorio");
    k.altura.focus();
    error=1;
    }
  if (!/^([0-9])*$/.test(k.peso))
    {
    alert("El valor " + k.peso + " no es un número");
    m1.focus();
    error=1;
    }
  if (error==0)
    {
    f()
    }
  }
function m()
  {
  if (k.masacorporal < 18.5) 
    { 
    alert("Bad healt status"); 
    }
  }
PESO (kg): <input type="text" id="dato1" onkeypress=""/>
<br/>
Altura (metros): <input type="text" id="dato2"/>
<br/>
<input   type="button" value="Calcular" onclick="f()"/>
<br/>
IMC:<span id="resultado"> </span>

如果你想尝试的话,这就是完整的代码,对我来说,即使我已经更正了最后一部分,警报也不会显示

标签: javascript

解决方案


您正在尝试直接访问对象内部的方法。您应该在方法之前添加对象名称。

function m() {
    if (k.masacorporal < 18.5){alert("Bad healt status");}
}

推荐阅读