Я пытаюсь создать форму с несколькими текстовыми полями, каждая из которых имеет соответствующий флажок. В основном, приложение работает как «Если да (флажок установлен), оставьте поле textarea пустым. В противном случае заполните свое объяснение, почему вы считаете, что это неправильно».Отображение списка в форме Play2
В моделях, у меня есть
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
правильный синтаксис для доступа к элементу в списке Форм, - Я не совсем понимаю, почему у моей формы есть ошибки. Два поля, которые необходимо заполнить, помечены как необязательные, просто потому, что иногда флажок не установлен, а иногда поле ответа остается пустым. Возможно, это из-за поля id? Я уже установил его в методе apply/unapply, поэтому я не уверен, что мне не хватает.
Спасибо за все входные данные.
Как ваш 'Answers.class' код выглядит? Вы пытались написать тест для подачи своей формы? Вы пытались обрабатывать ошибки формы, если да, то что вы получаете? – arussinov
Я не знаю Scala, но где в форме вы передаете 'id' на контроллер? Я не вижу в форме формы ''. Если вы его не пройдете, форма будет иметь ошибку, потому что она не является «необязательной» в вашей форме. (хотя вы, кажется, прямо передаете его методу контроллера, я могу ошибаться, но я не думаю, что он работает так) – Aerus
Что касается вашего первого вопроса, да, это выглядит правильно. – Aerus