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

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

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

Play Framework 2はPlayのメジャーバージョンです。現代の web アプリケーション開発に必要なコンポーネント及び API を統合した生産性の高い Java と Scala の web アプリケーションフレームワークです。

Q&A

解決済

1回答

3221閲覧

画面表示時に繰り返し処理の中で生成しているセレクトボックスの初期選択値を指定したい

yukidaruman

総合スコア13

Play Framework 2

Play Framework 2はPlayのメジャーバージョンです。現代の web アプリケーション開発に必要なコンポーネント及び API を統合した生産性の高い Java と Scala の web アプリケーションフレームワークです。

0グッド

0クリップ

投稿2016/02/23 06:29

playFramework2 にてview(画面)表示の際に
リスト(セレクトボックス)を、繰り返し処理の中で生成したいのですが
初期選択値の指定方法がわからずに困っています。

「helper.select」にて生成しているのですが

html

1@for(i <- 0 until viewDto.getMainList.size) { 2 3 @(helper.select ( 4 field = form("alist_"+i), 5 options = viewDto.getAList, 6 args = '_label -> "", '_default -> "")) 7}

上記のようにMainListの繰り返しの中でselectを生成するよう、viewを記述しています。
生成されたhtmlはidとnameが「alist0」という連番がついたものが生成されました。

ここまでは期待通りなのですが、選択値として初期表示(selected)したい値が
上位のリスト(viewDto.getMainList)の中に設定されています。
その値を選択させる方法がわからず困っています。

通常は初期値となる値が入っているフォームのプロパティ名をfieldに指定すると思いますが
繰り返し処理の中で利用したいため、fieldにその名前を指定することは避けたいです。

・fieldに初期選択したい値が入っているプロパティ名を指定してみる
(field = form("viewDto.getMainList.get(i).getXXX()") )
・optionsに「_selected -> "true"」を付けてみる
を試してみましたが、いずれもselectedは付きませんでした。

以上です。よろしくお願い致します。

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

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

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

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

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

guest

回答1

0

自己解決

色々試したのですが「helper.select」を使用すると、うまく実装できなかったため
以下のように修正し、期待通りの動きとなりました。

html

1@for(i <- 0 until viewDto.getMainList.size) { 2 3 <select name="alist@i"> 4 @for((key, value) <- viewDto.getAList) { 5 <option value="@value" @if(key == viewDto.getMainList.get(i).getXXX) { selected }> 6 @value 7 </option> 8 } 9 </select> 10}

同じことで困った人がいたときに、足しにしていただけたらと思います。

投稿2016/02/24 01:42

yukidaruman

総合スコア13

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問