[JavaScript] セレクトメニューで動的に要素表示を切り替え

投稿者: | 2021年3月23日

HTMLのセレクトメニューで、選んだ値によって別のフィールドが出るページがよくあります。

例えば、セレクトメニューで「今月」「先月」「カスタム」の3種類が表示される場合に

「カスタム」を選んだ場合だけ、FromとToの入力ボックスが出るようなページです。

style.displayプロパティで表現できます。

セレクトメニューを定義

セレクトメニューを定義します。id = “display_term”として、次のように指定します。

onchange属性に既に関数を入れていますが、これは後ほど定義します。

出し分ける要素を定義

表示/非表示を切り替える要素(今回はFrom/Toを入れるテキストボックス)を指定します。

id = “custom_term”とし、このidで要素を特定して、表示/非表示を切り替えます。

要素表示を切り替える関数を定義

要素表示を切り替える関数を定義します。

id指定で要素を取得し、style.displayプロパティの値を変更することにより、表示を切り替えます。

サンプルコード

全体のサンプルコードは以下のようになります。

ページをロードした際に、本来は切り替えたいテキストボックスがデフォルトで表示されてしまわないよう、onloadメソッドでロード時は非表示にしています。