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

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

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

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

Q&A

解決済

2回答

10895閲覧

セレクトボックスの選択を動的に変えたい

chintao1224

総合スコア155

JavaScript

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

0グッド

0クリップ

投稿2016/05/18 22:26

AngularJSで、ng-modelをchoiceに指定したセレクトボックスの選択を動的に変えたいと思っています。
いろいろやりましたが、駄目でした。

たとえば、インデックスを2にしたくて以下のようにしました。セレクトボックスはリストに10件以上入っています。
$scope.choice.options[2].selected=true;
$scope.choice.selectedIndex=2;

visualstudio2015でwebアプリケーションを指定して新規作成して、上のコードを確認して見ると(マウスポインタを重ねて見ると)undifindedとなっています。

$scopeを使ってng-modelを使ってのセレクトボックスの参照の仕方が解ってないんだと思いますが、どのようにセレクトボックスを参照して、セレクトボックスの選択を動的に変えたら良いのでしょうか?

僕が検討したのはインデックスですが、セレクトボックスの価、テキストでも指定できるのなら教えていただきたいです。

よろしくお願いします。

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

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

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

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

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

guest

回答2

0

ベストアンサー

choiceオブジェクトがどのような構造になっているのか不明なので、ピンポイントの回答になっていないかもしれませんが・・・。

ng-model を使った select の自動選択の例です。

HTML

1<button ng-click="selected_abc = 'a'">select A</button><br> 2<button ng-click="selected_abc = 'b'">select B</button><br> 3<button ng-click="selected_abc = 'c'">select C</button><br> 4<select ng-model="selected_abc"> 5 <option value="a">A</option> 6 <option value="b">B</option> 7 <option value="c">C</option> 8</select> 9<div>{{selected_abc}}</div>

そして、option をオブジェクト配列から自動生成する例です。

HTML

1<p ng-repeat="user in users" ng-click="p_click(user)">{{user.name}}</p> 2<select ng-model="selected_user" ng-options="user.name for user in users"/></select> 3<div>selected_user: {{selected_user.name}}</div>

JavaScript

1$scope.users = [ 2 {name:'Taro', gender:'male'}, 3 {name:'Hanako', gender:'female'}, 4 {name:'Kaori', gender:'female'}, 5 {name:'Kenji', gender:'male'}, 6 {name:'Sakura', gender:'female'}, 7 ]; 8$scope.p_click = function(user) { 9 $scope.selected_user = user; 10}

ご参考になれば。

投稿2016/05/19 04:40

tkanda

総合スコア2425

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

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

chintao1224

2016/05/19 14:53

実現したかったことが出来ました。 ありがとうございました。
guest

0

AngularJSを使ったことがないのですが、単純にjavascriptでオプションを動的に変えたい場合

html

1<select id="hoge">

idの値がhogeである前提で

javascript

1function changeOption(val){ 2 var select_option = document.getElementById('hoge').getElementsByTagName('option'); 3 for(i=0; i<select_option.length; i++){ 4 if(val == select_option[i].value){ 5 select_option[i].selected = true; 6 break; 7 } 8 } 9} 10changeOption('ほげ');

としてあげればvalue="ほげ"optionが選択されると思います。

実際のコードがないので推測になりますが・・・
http://qiita.com/zuzu/items/8af0da17849cd17d3949
などで少し調べてみた限りでは$scope.choiceはoption要素ではなくoption要素を生成するための配列になっていないでしょうか。
その場合$scope.choiceを使って動的に選択を変更するのは無理だと思います。
※上記URLで紹介されているのはあくまでもデフォルト値の設定ですので、後から動的に変更するのとは違う話しになります。

投稿2016/05/19 03:33

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

chintao1224

2016/05/19 14:54

javascriptの勉強になりました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問