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

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

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

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

9598閲覧

v-for内のcheckboxでv-modalを使う場合

bfk

総合スコア21

Vue.js

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2018/01/29 06:02

checkboxでtrue,falseを取得したく、以下のような記述をすると実現したいとおりの挙動になります。

html

1<div id='app'> 2 <ul> 3 <li> 4 <input type="checkbox" id="boxA" v-model="object.hoge"> 5 <label for="boxA">hoge</label> 6 </li> 7 <li> 8 <input type="checkbox" id="boxB" v-model="object.fuga"> 9 <label for="boxB">fuga</label> 10 </li> 11 </ul> 12 <ul> 13 <li v-for="(value, name) in object">{{ name }} : {{ value }}</li> 14 </ul> 15</div>

javascript

1new Vue({ 2 el: '#app', 3 data: { 4 object: { 5 hoge: false, 6 fuga: false 7 } 8 } 9})

ですが、inputもv-forで記述させようと思い、html側を以下のように変更すると、checkしてもtrue,falseが変更されません。

html

1<div id='app'> 2 <ul> 3 <li v-for="(value, name) in object"> 4 <input type="checkbox" :id="name" v-model="name"> 5 <label :for="name">{{ name }}</label> 6 </li> 7 </ul> 8 <ul> 9 <li v-for="(value, name) in object">{{ name }} : {{ value }}</li> 10 </ul> 11</div>

v-modalを使う場合は単体のcheckboxでないとならないのでしょうか??

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

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

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

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

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

guest

回答1

0

ベストアンサー

v-modelに記述する項目が誤っています。

<input type="checkbox" :id="name" v-model="name">

以下のように変更すれば意図した挙動が実現できるかと思います。

<input type="checkbox" :id="name" v-model="object[name]">

投稿2018/01/29 07:24

kozy4324

総合スコア37

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

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

bfk

2018/01/29 07:38

ありがとうございます!拙い質問にご回答いただきありがとうございます! 可能であれば後学の為に伺いたいのですが、なぜobject[name]で動作したのでしょうか?? この場合、書くとしたらobject.nameかな?と考えており、全く頭になかった書き方だったもので…
kozy4324

2018/01/29 08:19

v-for内のvalueとnameはJavaScriptでいうローカル変数のようなものですので、object.hoge と等価なのは、object["hoge"] となります。object.name ですと、objectの "name" というプロパティにアクセスすることになりますよ。
bfk

2018/01/29 08:23

理解しました!ありがとうございます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問