0

コードの何が問題なのかわかりませんが、addEventListener() を使用しても何も起こりません。

#ibm ボタン ID を compute() onClick イベントにバインドできるようにする別の解決策はありますか?

これを Firfox OS で実行する予定なので、CSP 違反に記載されているように、ボタン自体に onClick 属性を設定することは禁止されています。

    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);
4

1 に答える 1

0

あなたのコードは正常に実行されており、計算関数は正常にトリガーされています。関数内のコードに問題がある可能性がありexecuteます。このフィドルをチェックしてください

于 2013-02-06T13:36:06.797 に答える