0

フォームから値を関数に取得して値を返そうとしています これが私の関数です

function createInput(){
  var weight;
  weight = document.bmiCalc.weight.value;

  var height = getElementById('height').value;
  input.onclick = function calcBMI()
    {
    // calculate users BMI

    var BMI = weight * 703 / Math.pow(height, 2);
  return BMI;
  }
  document.getElementById("BMI").appendChild();
}

そして、これが私のhtmlページからの私のフォームコードです

    <form id="bmiCalc">
      <h2> Calculate your Current BMI</h2>
        <p><label> Please enter your weight in lbs: <input type="text" name = "weight" id=   "weight"></label></p>
        <p><label>  Please enter your height in inches: <input type="text" name ="height" id="height"></label>
          <button type="submit">Submit</button></p>
        <p><label> Your current BMI is: <input name="BMI" id="BMI"></label></p>
     </form>
4

2 に答える 2

0

あなたのhtmlとjsを変更しました:

http://jsfiddle.net/CQxnx/

html:

<h2> Calculate your Current BMI</h2>
<label> Please enter your weight in lbs:</label> <input type="text" name="weight" id="weight">
<br />    
<label>  Please enter your height in inches:</label> <input type="text" name="height" id="height">
    <br />
    <input type="button" value="calculate" onclick="calcBMI();" />
    <br />

 <div id="msg"></div>

js:

function calcBMI(){
    var weight = document.getElementById('weight').value;

    var height = document.getElementById('height').value;
     // calculate users BMI

    var BMI = weight * 703 / Math.pow(height, 2);
    var msg = document.getElementById('msg');
    msg.innerHTML = 'Your current BMI is:' + BMI;

}
于 2013-03-28T00:42:28.323 に答える
0

少しずれているようですが、実際にcreateInput関数を呼び出すことはありません。その後も、実際には入力ボタンを追加しません。BMIID要素はなくcreateInput、ボタンがクリックされたときではなく、呼び出されたときにそのまま重量/高さを計算します。

代わりに、まずボタンを DOM に配置し、計算関数をそれにバインドする必要があります。

document.getElementById('calculate').addEventListener('click', function () {
    document.getElementById("BMI").textContent =
        document.getElementById('weight').value * 703 /
        Math.pow(document.getElementById('height').value, 2);
});

http://jsfiddle.net/fsKNb/

于 2013-03-28T00:43:31.397 に答える