Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript addEventListener onClick不工作_Javascript_Function_Addeventlistener - Fatal编程技术网

Javascript addEventListener onClick不工作

Javascript addEventListener onClick不工作,javascript,function,addeventlistener,Javascript,Function,Addeventlistener,我不知道我的代码出了什么问题,但当我使用addEventListener()时,它没有任何作用 是否有人有其他解决方案可以将#ibm button ID绑定到compute()onClick事件 我计划在Firfox操作系统上运行它,因此在按钮本身上设置onClick属性是禁止的,正如CSP中所述 function compute() { var w = parseInt(document.getElementById('weight').value); var hf = par

我不知道我的代码出了什么问题,但当我使用addEventListener()时,它没有任何作用

是否有人有其他解决方案可以将#ibm button ID绑定到compute()onClick事件

我计划在Firfox操作系统上运行它,因此在按钮本身上设置onClick属性是禁止的,正如CSP中所述

    function compute()
    {
var w = parseInt(document.getElementById('weight').value);
var hf = parseInt(document.getElementById('height_ft').value);
var hi = parseInt(document.getElementById('height_in').value);

    if (!checker(w))
{

            showAndroidToast('Please input your weight');
    return;
}
else if (!checker(hf))
{

            showAndroidToast('Please input your height');
    return;
}


if (!checker(hi))
{
    var i = 0;
    document.getElementById('height_in').value = i;
}
else
{
    var i = parseInt(document.getElementById('height_in').value);
}

var comp_h = parseFloat((hf * 12) + (i * 1));
var tot_h = comp_h * comp_h;    

comp = formula(w, tot_h);
document.getElementById('bmitot').value = comp;

if (comp > 30)
{
    document.getElementById('res').value = 'Severe Level! Thats too much FAT!      Go get some diet pills or something!';
    document.getElementById("bmitot").style.backgroundColor = "red";
    document.getElementById("zero").style.visibility = "hidden";
    document.getElementById("one").style.visibility = "hidden";
    document.getElementById("two").style.visibility = "hidden";
    document.getElementById("three").style.visibility = "visible";
}
if (comp > 25 && comp <=29.9)
{
    document.getElementById('res').value = 'Bad Level! You are too FAT!';
    document.getElementById("bmitot").style.backgroundColor = "yellow";
    document.getElementById("zero").style.visibility = "hidden";
    document.getElementById("one").style.visibility = "hidden";
    document.getElementById("two").style.visibility = "visible";
    document.getElementById("three").style.visibility = "hidden";
}
if (comp > 18.5 && comp <=24.9)
{
    document.getElementById('res').value = 'Nice! You are on the safe level!';
    document.getElementById("bmitot").style.backgroundColor = "green";
    document.getElementById("zero").style.visibility = "hidden";
    document.getElementById("one").style.visibility = "visible";
    document.getElementById("two").style.visibility = "hidden";
    document.getElementById("three").style.visibility = "hidden";
}
if (comp < 18.5)
{
    document.getElementById('res').value = 'Bad Level! Go get some nutrients!';
    document.getElementById("bmitot").style.backgroundColor = "yellow";
    document.getElementById("zero").style.visibility = "visible";
    document.getElementById("one").style.visibility = "hidden";
    document.getElementById("two").style.visibility = "hidden";
    document.getElementById("three").style.visibility = "hidden";
}
}

function formula(w, h)
{
var bmi = w/h * 703;
var a_bmi = Math.floor(bmi);
var dif = bmi - a_bmi;
dif = dif * 10;
diff = Math.round(dif);

if (dif == 10)
{
    a_bmi += 1;
    dif = 0;    
}
bmi = a_bmi + "." + diff;
return bmi;
}

function checker(type)
{
  if (isNaN(parseInt(type)))
{
  return false;
} 
else if (type < 0)
{
  return false;
}
else
{
return true;
}
}

function showAndroidToast(toast) 
{
   Android.showToast(toast);
}

 document.getElementById('ibm').addEventListener('click', compute);
函数计算()
{
var w=parseInt(document.getElementById('weight').value);
var hf=parseInt(document.getElementById('height_ft')。值);
var hi=parseInt(document.getElementById('height_in')).value);
如果(!检查器(w))
{
showAndroidToast(“请输入您的体重”);
返回;
}
否则,如果(!检查器(hf))
{
showAndroidToast('请输入您的身高');
返回;
}
如果(!检查程序(hi))
{
var i=0;
document.getElementById('height_in')。value=i;
}
其他的
{
var i=parseInt(document.getElementById('height_in')。值);
}
var comp_h=parseFloat((hf*12)+(i*1));
var tot_h=补偿h*补偿h;
comp=公式(w,tot_h);
document.getElementById('bmitot')。value=comp;
如果(补偿>30)
{
document.getElementById('res')。value='severy Level!太多脂肪了!去吃些减肥药什么的!';
document.getElementById(“bmitot”).style.backgroundColor=“红色”;
document.getElementById(“零”).style.visibility=“隐藏”;
document.getElementById(“一”).style.visibility=“隐藏”;
document.getElementById(“两个”).style.visibility=“隐藏”;
document.getElementById(“三”).style.visibility=“可见”;
}

如果(comp>25&&comp 18.5&&comp您的代码执行正常,而计算函数触发正常。执行
execute
函数中的代码可能有问题。请检查此问题。

您为什么使用测试?我的代码是否真的有问题?即使我使用浏览器运行代码,它也没有任何作用。我无法真正使用您的测试代码,因为有像Android这样的函数。showtoos(toast)
在我的本地环境下不起作用,而且我还没有用完整的html来查找
weight
height\u ft
等。我需要一个最小的测试用例来检查事件是否正在执行。@MarcusAng他试图创建一个,这是调试编码问题的正确方法。