Vue.js 入門 フォーム部品のサンプル
Vue.jsで主なフォーム部品のサンプルを表示してみました。
概要
以下のフォーム部品を試しています。
- input type=”text” 1行テキスト
- textarea 複数行テキスト
- チェックボックス
- ラジオボタン
- セレクトボックス
- 複数セレクトボックス
ソース
ソースは以下となります。
form_sample.html
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>Vueのform部品サンプル</title> </head> <body> <div id="app"> <h3>テキスト</h3> <p> {{ text }}<br> <input type="text" v-model="text"> </p> <hr> <h3>テキストエリア</h3> <p> {{ textarea }}<br> <textarea v-model="textarea"></textarea> </p> <hr> <h3>チェックボックス</h3> <input type="checkbox" v-model="check01">{{ check01 }} <input type="checkbox" v-model="check02">{{ check02 }} <hr> <h3>ラジオボタン</h3> <input type="radio" value="A" v-model="radio">A<br> <input type="radio" value="B" v-model="radio">B<br> <input type="radio" value="C" v-model="radio">C<br> <span>{{ radio }}</span> <hr> <h3>セレクトボックス</h3> <select v-model="select"> <option disabled="disabled">選択してください</option> <option value="AA">AA</option> <option value="BB">BB</option> <option value="CC">CC</option> </select><br> {{ select }} <hr> <h3>複数セレクトボックス</h3> <select v-model="multipleselect" multiple> <option value="AAA">AAA</option> <option value="BBB">BBB</option> <option value="CCC">CCC</option> </select><br> {{ multipleselect }} <hr> </div> <script src="https://npmcdn.com/vue/dist/vue.min.js"></script> <script> var app = new Vue({ el: '#app', data: { text: "1行テキストサンプル", textarea: "複数行テキストサンプル", check01: true, check02: false, radio: "", select: "", multipleselect: [] } }); console.log(app.text); </script> </body> </html>
実行結果
実行結果はこちら
解説
v-model属性を付与することで、Vueの特徴であるデータバインディングが設定されます。
データバインディングを設定することにより、画面表示とJavaScriptで変数の値の同期が取れます。
入力ボックスの<input type=”text” v-model=”text”>の値を変更すると、画面表示の{{ text }}が書き換わります。
JavaScriptからは、 console.log(app.text)にあるようにapp.textで値にアクセスできます。