Javascript (基本的なこと004)

基本的なこととして、javascriptのコンポーネントを試してみる。
Webでサンプルを探したら、ドロップダウンリストとボタンのサンプルがあったので、それを試してみた。データは少し変えたけど、ドロップダウンリストで指定した値でボタンをクリックすると、idとデータがテキストボックスに表示されるプログラムと、データを追加するプログラム。

まず起動。

ここで選択をクリックすると、下の部分のテキストボックスにidとデータが表示される。


全コードは、一番下につけるけど、上の動作では、ボタンのコンポーネントに対して下のコードを紐づけることで、ボタンがクリックされたときに起動されるようにしているよう。

      function choice() {
        var heritage = document.getElementById("heritage");
        var value = heritage.value;
        document.getElementById("value_area").innerHTML = value;
        var label = heritage.options[heritage.options.selectedIndex].text;
        document.getElementById("label_area").innerHTML = label;
      }


データを追加するプログラムも同じように、追加ボタンに対してコードを紐づけて、ボタンがクリックされたときに起動するようにしている。
上の図では「百舌鳥・古市古墳群」がないが、追加ボタンを押した後(下図)では追加されている(データ多くしすぎて見にくくなってしまったけど)。


コンポーネントまで試したけど、基本的なことだけやっててもつまらないので、次回から本に書いてあったカレンダーのjavascriptを少しアレンジして作成してみようか。どんなものを作るか少し考える。

下が今回試した全コード。

<!DOCTYPE html>
<html>
    <script>
      function choice() {
        var heritage = document.getElementById("heritage");
        var value = heritage.value;
        document.getElementById("value_area").innerHTML = value;
        var label = heritage.options[heritage.options.selectedIndex].text;
        document.getElementById("label_area").innerHTML = label;
      }
      // 追加
      function add() {
        var heritage = document.getElementById("heritage");
        var option = document.createElement("option");
        option.value = document.getElementById("new_value").value;
        option.innerText = document.getElementById("new_label").value;
        heritage.appendChild(option);
      }
    </script>
  </head>
  <body>
    <select id="heritage">
    <option value="JP01HT">法隆寺地域の仏教建造物</option>
    <option value="JP02HC">姫路城</option>
    <option value="JP03YK">屋久島</option>
    <option value="JP04SS">白神山地</option>
    <option value="JP05MA">古都京都の文化財</option>
    <option value="JP06SG">白川郷・五箇山の合掌造り集落</option>
    <option value="JP07GD">原爆ドーム</option>
    <option value="JP08IS">厳島神社</option>
    <option value="JP09MA">古都奈良の文化財</option>
    <option value="JP10NS">日光の社寺</option>
    <option value="JP11GS">琉球王国のグスク</option>
    <option value="JP12KM">紀伊山地の霊場と参詣道</option>
    <option value="JP13SR">知床</option>
    <option value="JP14IG">石見銀山遺跡</option>
    <option value="JP15OI">小笠原諸島</option>
    <option value="JP16HM">平泉</option>
    <option value="JP17FJ">富士山</option>
    <option value="JP18TS">富岡製糸場</option>
    <option value="JP19MI">明治日本の産業革命遺産</option>
    <option value="JP20WA">国立西洋美術館</option>
    <option value="JP21OI">宗像・沖ノ島</option>
    <option value="JP22HC">潜伏キリシタン関連遺産</option>
    </select>
    <input type="button" value="選択" onclick="choice();"/>
    <br />
    <br />
    <input id="new_value" type="text" value="JP23MK" />
    <input id="new_label" type="text" value="百舌鳥・古市古墳群" />
    <input type="button" value="追加" onclick="add();"/>
    <br />
    <br />
    <div id="value_area"></div>
    <div id="label_area"></div>
  </body>
</html>