質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Q&A

解決済

2回答

572閲覧

vue.js セレクトボックスで表示内容を変更したい

tktail

総合スコア72

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

0グッド

0クリップ

投稿2021/12/02 06:48

Vue.js初心者です。
1つのセレクトボックスを変更したら、div要素が変更されるようなコードが書きたいです。

①セレクトしたらchangeイベントを発火させる
②changeイベントで表示する値を変える
以上のような流れかと思っていますが、中々上手く行きません。
アドバイスを頂けますでしょうか?
よろしくお願い致します。

<template> <div class="card-body"> <div class="form-group"> <label for="selectOptions">選択</label> <select class="form-control" id="selectOptions" v-model="selectedKey" @change="selected" > <option v-for="val in selectItems">{{ val }}</option> </select> </div> <div v-show="contentsA"> <b style="color:red;">A</b> </div> <div v-show="contentsB"> <b style="color:blue;">B</b> </div> <div v-show="contentsC"> <b style="color:green;">C</b> </div> </div> </template> <script> export default { data: () => { return{ selectedKey: '', selectItems: ['A', 'B', 'C'], ContentsA: false, ContentsB: false, ContentsC: false } }, methods: { selected: (val) => { this.selectedKey = val.value; } } } </script>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

直接判定したら?

html

1 <div v-show="selectedKey=='A'"> 2 <b style="color:red;">A</b> 3 </div> 4 5 <div v-show="selectedKey=='B'"> 6 <b style="color:blue;">B</b> 7 </div> 8 9 <div v-show="selectedKey=='C'"> 10 <b style="color:green;">C</b> 11 </div>

投稿2021/12/02 07:24

sousuke

総合スコア3828

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tktail

2021/12/02 10:26

ありがとうございます。 直接判定する方法は思いつきもしませんでした。 ABCは日本語の文字列を入れる予定だったので、数字で判別した方がいいような気もしますが、動いているから良しとして この度は助かりました。ありがとうございます。
sousuke

2021/12/03 01:00

<option v-for="(val,i) in selectItems" :value='i'>{{ val }}</option> valueにバインドしたらselecetkeyはvalueになるし数字とる方法もあるよ。
tktail

2021/12/03 02:33

なるほどvalueにバインドしてあげたらよかったんですね! ありがとうございます!! selectの外で読むのは無理なのかなと思ってました。。勉強になります!
guest

0

ナニをしたいのかよくわかりませんが。こういうことなのでわ?

diff

1 <div v-show="contentsA"> 2 ... 3- ContentsA: false, 4+ contentsA: false, 5 ... 6 methods: { 7 selected: (val) => { 8- this.selectedKey = val.value; 9+ this.contentsA = this.selectedKey === 'A'; 10 }

投稿2021/12/02 07:24

shiketa

総合スコア3971

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tktail

2021/12/02 10:27

ありがとうございます。 セレクトボックスで選択された値によって表示されるフォームを切り替える予定でした。 この度はご回答いただきまして、ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問