1

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

@(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}
    }
}

单选按钮

它为从 pgsql 查询中提取的值生成正确的单选按钮映射,但我面临的问题是,当我单击任何单选按钮时,唯一显示更改的行是第一行。所以用图片来解释一下,如果我选择“非常热情”来踢足球,单选按钮不会在此处呈现条目,但是选择“s”的第一个热情会变为“非常热情”。

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

4

2 回答 2

1

它看起来是正确的。您@b3.radio(levelsForm("interestpassions")...用于所有字段,因此所有字段都只绑定到一个表单字段 - “interestpassions”。

我不确定“play-bootstrap3”框架,但在琐碎的播放表单助手中,您需要使用它repeat来生成重复字段:

@helper.repeat(userForm("emails"), min = 1) { emailField =>

    @helper.inputText(emailField)

}
于 2015-10-07T08:34:30.707 回答
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 来隐藏输入文本字段,因为这个值是从用户在上一个问题中回答的内容中提取的,一个问题管道。所以之前的答案将作为 pgsql 中另一个表的 ID 插入。我认为我的案例类定义比旋转模板本身更有问题。

于 2015-10-07T09:05:13.500 回答