2017-02-08 16 views
0

javaループでテーブルを作成しようとしていますが、うまくいきます。 しかし、私は入力を読み込む際に別のエラーがありました。数字を入力してボタンを押すと、数値から情報を読み取るはずですが、h2部分では "null"、セル内部では "0"になります。私は入力から数値を読み取ることができないので、このコードはnullを生成すると思います。だから私はここで何が問題なのか知りたい。Javascriptで入力を読み取る際にエラーが発生する

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="utf-8" /> 
<meta name="viewport" content="width=device-width,initial-scale=1.0"> 
<title>Multiplication table</title> 

<link rel="stylesheet" href="styles.css" /> 
<script src="Generate.js"></script> 

</head> 

<body> 
<header> 
<h1>Multiplication Table</h1> 
</header> 

<article> 
    <form> 
     <fieldset> 
     Enter a number: <input type="number" id="number" /> 
     </fieldset> 
     <fieldset> 
     <button type="button" id="button">Generate Times Table</button> 
     </fieldset> 
    </form> 
    <center> 
    <h2 id="name"></h2> 
    <div id="results"> 
    <script> 
    var submitButton = document.getElementById("button"); 
    if (submitButton.addEventListener) { 
    submitButton.addEventListener("click", generatetable, false); 
    window.addEventListener("load", function() { 
     document.getElementById('number').innerHTML = ""; 
    }, false); 
    } 
    else if (submitButton.attachEvent) { 
    submitButton.attachEvent("onclick", generatetable); 
    window.attachEvent("onload", function() { 
     document.getElementById('number').innerHTML = ""; 
       }); 
    } 
    </script>  
</div> 
</center> 
</article> 
</body> 
</html> 

、ここで私のGenerate.js

var input = document.getElementById("number"); 
var table = document.createElement('table'), tr, td, row, cell; 
var times = 0; 

function generatetable() { 
    document.getElementById("name").innerHTML = input + " Times Table"; 
    for (row = 0; row < 10; row++) { 
     tr = document.createElement('tr'); 
      for (cell = 1; cell <= 3; cell++) { 
       times++; 
       var result = input * times; 
       td = document.createElement('td'); 
       tr.appendChild(td); 
       td.innerHTML = result; 
       } 
    table.appendChild(tr); 
    } 
    document.getElementById('results').appendChild(table); 
} 
+2

ジャワたその初期値、で滞在しますまたはJavascript?タイトルを変更! – TricksfortheWeb

+1

実際には、タイトルから削除してください。タグはタグリストに属し、タイトルには属しません。 – Xufox

+0

@TricksfortheWebおっと! ty – Momo

答えて

0

であり、これに多くの問題があったが、私はそれが働いてしまいました。あなたはまた、関数内input変数を動かすのに必要な値を、取得することに加え

var submitButton = document.getElementById("button"); 
 
if (submitButton.addEventListener) { 
 
    submitButton.addEventListener("click", generatetable, false); 
 
    window.addEventListener("load", function() { 
 
    document.getElementById('number').value = ""; 
 
    }, false); 
 
} else if (submitButton.attachEvent) { 
 
    submitButton.attachEvent("onclick", generatetable); 
 
    window.attachEvent("onload", function() { 
 
    document.getElementById('number').value = ""; 
 
    }); 
 
} 
 

 
function generatetable() { 
 
    var input = Number(document.getElementById("number").value); 
 
    var table = document.createElement('table'), 
 
    tr, td, row, cell; 
 
    var times = 0; 
 
    document.getElementById("name").innerHTML = input + " Times Table"; 
 
    for (row = 0; row < 10; row++) { 
 
    tr = document.createElement('tr'); 
 
    for (cell = 1; cell <= 3; cell++) { 
 
     times++; 
 
     var result = input * times; 
 
     td = document.createElement('td'); 
 
     td.innerHTML = result; 
 
     tr.appendChild(td); 
 
    } 
 
    table.appendChild(tr); 
 
    } 
 
    document.getElementById('results').appendChild(table); 
 
}
<header> 
 
    <h1>Multiplication Table</h1> 
 
</header> 
 

 
<article> 
 
    <form> 
 
    <fieldset> 
 
     Enter a number: 
 
     <input type="number" id="number" /> 
 
    </fieldset> 
 
    <fieldset> 
 
     <button type="button" id="button">Generate Times Table</button> 
 
    </fieldset> 
 
    </form> 
 
    <center> 
 
    <h2 id="name"></h2> 
 
    <div id="results"></div> 
 
    </center> 
 
</article>

、それ以外の場合は常に0

+0

それが動作!私はそれがうまくいくかを理解するためにこのコードを勉強します。どうもありがとう〜_〜 – Momo

+0

よろしくお願いします。チェックマークをクリックして回答を受け入れることができます。 – TricksfortheWeb

関連する問題