ラジオボタン(input[type=”radio”])を操作する [Vue.js]

Vue.js The Progressive JavaScript Framework

複数の項目から1つを選択させるラジオボタンのオプションは、多くのWebアプリケーションで利用されています。
例えば、性別を選択するオプションであったり、ネットショッピングの支払い方法の選択などで見かけます。

Vue.jsではv-modelディレクティブを使ってフォームの入力コントロール(要素)に双方向(two-way)データバインディングを実装できます。

v-modelディレクティブをを使えば、ラジオボタン(type属性に”radio”を指定したinput要素)にデータをバインドして簡単に操作することができます。

今回は、Vue.jsでラジオボタンを操作する方法について紹介します。

v-modelディレクティブ

v-modelディレクティブは、フォームのラジオボタンにスクリプト側のVueインスタンス(JavaScript)で定義したデータを双方向にバインドします。
データを双方向にバインドすることで、Vueのインスタンスに定義してデータを変更することで画面(UI)のデータを更新し、画面のデータを変更するすることでVueインスタンスのデータを更新することができます。

ラジオボタンにv-modelでデータをバインドすると以下のようになります。

v-modelディレクティブは、ラジオボタンが持つcheckedプロパティとchangeイベントにバインドされます。
v-modelは糖衣構文(syntax sugar)で、v-bindディレクティブでcheckedプロパティにバインドし、v-onディレクティブでchangeイベントにバインドした場合と同様の動作になります。

v-modelディレクティブについては、以下の記事にまとめていますので、参考にしてください。

v-modelディレクティブでフォームの入力要素と双方向データバインディング [Vue.js]
本記事では、Vue.jsのv-modelディレクティブについて紹介します。 v-modelディレクティブ ユーザーからの入力...

v-bindディレクティブ、v-onディレクティブについても、以下の記事にまとめていますので、参考にしてください。

v-bindディレクティブでHTML要素の属性にバインドする [Vue.js]
本記事では、Vue.jsのv-bindディレクティブについて紹介します。 v-bindディレクティブ HTMLの要素はcla...
v-onディレクティブでイベントの処理(メソッドや式)をバインドする [Vue.js]
本記事では、Vue.jsのv-onディレクティブについて紹介します。 v-onディレクティブ ユーザーからの操作を受け付ける...

ラジオボタン(input[type=”radio”])にデータをバインドする

まず、HTMLテンプレートにtype属性にradioを指定したinput要素を配置します。

ここでは例として3つの要素を配置しています。

次に、JavaScript(プログラムのスクリプト)にラジオボタンにバインドするデータを定義します。

JavaScript側にバインドするデータを定義したら、HTMLテンプレートに定義したinput要素にv-modelディレクティブを使用してデータをバインドします。

ここでは画面のラジオボタンを操作することで、バインドしたデータが変更されることを確認するために、{{}}(マスタッシュ構文)を使用してデータの値を表示しています。

ここまでに記載したサンプルコードを実行すると、以下のような画面が表示されます。

Vue.js ラジオボタン(radio)にデータをバインドしたサンプルの実行結果

ラジオボタンをクリックして項目を選択すると、ラジオボタンにバインドしたデータの値が変更され、双方向データバインディングができていることが確認できます。

Vue.js ラジオボタン(radio)にデータをバインドしたサンプルの実行結果(画面から選択項目を変更)

Vue.js 入門 Tips 一覧