旋转重复表单字段只有第一个按钮更新

时间:2015-10-06 22:28:00

标签: playframework twirl

我附上了我的界面图片,该图片是使用以下旋转模板代码创建的:

@(interests:List[String],levelsForm: Form[ManyInterests],user:models.User)(implicit request: RequestHeader,messages: Messages)

@import helper._
@import play.api.Play.current


@import b3.vertical.fieldConstructor
@opts = @{ Seq("1"->"Not very passionate","2"->"A little passionate",
    "3"->"Moderately passionate","4"->"Very passionate","5"->"Extremely passionate") }

@main("Passion Levels",Some(user)) {
    <h3>For each of the previous entered interest and activities, please rate how passionate you are:
    </h3>
    @helper.form(action = routes.ResponseController.newPassion) {
    @interests.map { interest =>
            <span><b>@interest</b></span><br />
        @b3.radio(levelsForm("interestpassions"), options = opts,'_inline ->true)
    }
        @b3.buttonType("submit", 'class -> "btn btn-default"){Next}
    }
}

radio buttons

它为从pgsql查询中提取的值生成正确的单选按钮映射,但我遇到的问题是,当我单击任何单选按钮时,显示更改的唯一行是第一行。因此,为了解释使用图像,如果我选择'非常激情'来踢足球,单选按钮不会在这里呈现一个条目,但是对's'的第一次激情的选择会变为'非常激情'。

我不确定如何解决这个问题。我正在使用play-bootstrap3,它对我所有其他表单组件都很有用。

2 个答案:

答案 0 :(得分:1)

看起来很正确。您对所有字段使用protected PendingIntent getPendingSelfIntent(Context context) { Intent intent = new Intent(context, AppReceiver.class); return PendingIntent.getBroadcast(context, 0, intent, 0); } protected PendingIntent getLaunchZone(Context context) { Intent intent = new Intent(context, WindowServiceDialog.class); return PendingIntent.getService(context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT); } ,因此所有字段都只绑定到一个表单字段 - “interestpassions”。

我不确定'play-bootstrap3'框架,但是通过简单的游戏形式帮助you need to use repeat生成重复字段:

@b3.radio(levelsForm("interestpassions")...

答案 1 :(得分:0)

谢谢...我最终在网上使用了博客提示并使用了这段代码:

 @helper.form(action = routes.ResponseController.newPassion) {

        @for(i <- 0 to interests.length - 1) {
            @defining(i) { count =>
                @defining(interests(i)) { interest =>
                        <span><b>@interest.interest</b></span><br/>
                @b3.text(levelsForm("interestpassions["+count+"].interest"), 'value -> s"${interest.interest}")
                @b3.radio(levelsForm("interestpassions["+count+"].level"), options = Seq("1" -> "Not very passionate", "2" -> "A little passionate",
                    "3" -> "Moderately passionate", "4" -> "Very passionate", "5" -> "Extremely passionate"),'_label -> s"", '_inline -> true, 'value -> s"${interest.passionLevel}")
                }
            }
        }
        @b3.buttonType("submit", 'class -> "btn btn-default"){Next}
    }
}

我使用了一些jQuery来隐藏输入文本字段,因为这个值是jsut从用户在之前的问题中回答的问题,la问题管道。所以前面的答案将作为pgsql中另一个表的ID插入。我认为我的案例类定义比旋转模板本身更重要。