我正在尝试创建一个包含多个textarea的表单,每个表单都有一个相应的复选框。基本上,应用程序的工作方式是“如果是(复选框已选中),请将textarea留空。否则,请填写您为何认为错误的解释”。
在模特中,我有
case class AnswerMapping(id: Long, status: Option[String], result: Option[String]
val form = Form[Seq[Answers](
mapping(
"details" ->
list(mapping(
"id" -> longNumber,
"status" -> optional(text),
"result" -> optional(text)
)(AnswerMapping.apply)(AnswerMapping.unapply)
))(apply)(unapply)
)
在观点中,我有
@helper.form(action = controllers.conflict.routes.Answer.updateAnswer(ans.id()) {
<div class="row-fluid">
<div class="span12">
@ans.details.get.zipWithIndex.map { case(detail, index) =>
@helper.textarea(
form(("details[" + index + "].result")),
'class -> "input-xlarge resizable",
'id -> ("box" + index),
'_label -> "")
}
</div>
<div class="controls">
<input value="Submit" type="submit" class="btn btn-primary">
</div>
</div>
}
呈现的HTML看起来像<textarea id="box0" name="details[0].result" class="input-xlarge resizable" id="box0"></textarea>
但是,当我提交表单时,我被重定向回同一页面。这可能是因为我在我的控制器中有这个,这意味着我的表单中有错误
Ans.form.bindFromRequest.fold(
formWithErrors => Ok(views.html.answer.edit(answer, formWithErrors)),
ans => { // save the answer }
我的问题:
details[0].result
是访问表单列表中元素的正确语法感谢您的所有输入。
答案 0 :(得分:0)
请参阅文档:Repeated values
@helper.repeat(myForm("emails"), min = 1) { emailField =>
@helper.inputText(emailField)
}