JavaScript form入力 05 入力値の利用(解決編)

前回では よくあるエラーを紹介しました。

今回は 前回のようなエラーを解決するにはどう考えればいいかをご紹介します。





以下では [ form-05.html ]を使うことにします。

[ form-05.html ]
<html>
<head>
  <title>JavaScript form 05</title>
<body>
<p>
<label>入力値1<input type=”text” id=”input1″></label><br>
<label>入力値2<input type=”text” id=”input2″></label><br>
<input type=”button” value=”関数実行” id=”set”>
</p>


<script>
  document.getElementById(“set”).onclick = function() {
    const input1 = document.getElementById(“input1”).value;
    const input2 = document.getElementById(“input2”).value;
    let plus = input1+ input2;
    document.write(“足し算 = ” + plus);
  };
</script>
</body>
</html>

とウェブサイト上に表示されていると思います。
このサイト上の 入力値1 に 半角数字で 5 と入力して
このサイト上の 入力値2 に 半角数字で 8 と入力して 関数実行をクリックすると

足し算 = 58 とウェブサイト上の表示が変更されましたね。


これは
let plus = input1 + input2 とは
input1という文字列 と input2という文字列 をつないだものを plus に格納する
という意味だったからです。

つまり
5 という文字 と 8 という文字 をつないだ結果
plus = 58 となってしまったわけでした。


本当の目的は plus = 13 となることでしたので、これを実現するには


<script>
  document.getElementById(“set”).onclick = function() {
    const input1 = document.getElementById(“input1”).value;
    const input2 = document.getElementById(“input2”).value;

    // 💡 Number() を使って、文字を数字に変換してから足し算します

     let plus = Number(input1) + Number(input2);
    document.write(“足し算 = ” + plus);
  };
</script>

と書き換えれば解決できます。

input1, input2 に入っていた値は 文字列 だったので
それを 数値 に Number() を使って変更して、 数値を足したものを plus に入れた

というわけです。



今度は画面に 「足し算 = 13」 と正しく表示されると思いますのでお試しください!