2013-06-16 8 views
3

여러 텍스트 영역이있는 양식을 만들려고합니다. 각각 해당 확인란이 있습니다. 기본적으로 응용 프로그램은 "예 (확인란이 선택되어있는 경우), 텍스트 영역을 비워 둡니다. 그렇지 않은 경우 이유에 대한 설명을 작성하십시오."라고 응용 프로그램이 작동합니다. 내가 양식을 제출하면 <textarea id="box0" name="details[0].result" class="input-xlarge resizable" id="box0"></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 본다 같은 페이지로 내가 의미하는 내 컨트롤러이이 오류가 내 양식이 있기 때문에 이것은 아마도

Ans.form.bindFromRequest.fold(
    formWithErrors => Ok(views.html.answer.edit(answer, formWithErrors)), 
    ans => { // save the answer } 

내 질문 :

  1. 위인가, details[0].result 올바른 구문은 폼의리스트의 요소에 액세스하기
  2. 왜 내 양식에 오류가 있는지 이해가되지 않습니다. 채워 져야하는 두 개의 필드는 선택 사항으로 표시되는데, 그 이유는 확인란이 선택되지 않았기 때문이며 때로는 대답 상자가 공백으로 표시되기 때문입니다. 아마도 id 필드 때문일까요? 이미 적용/적용되지 않은 방법으로 설정 했으므로 내가 무엇을 놓치고 있는지 잘 모르겠습니다.

모든 입력에 감사드립니다.

+0

은'Answers.class' 코드처럼 보이는 방법? 양식 제출 테스트를 작성하려고합니까? 양식 오류를 처리하려고합니까? 그렇다면 무엇을 얻을 수 있습니까? – arussinov

+0

스칼라에 대해 모르겠다.하지만 폼에 'id'를 컨트롤러에 전달하는 곳은 어디인가? 나는 어떤 형태의 '도 보지 못했다. 전달하지 않으면 양식에 '선택 사항'이 아니기 때문에 양식에 오류가 발생합니다. (컨트롤러 메소드에 직접 전달하는 것처럼 보이지만 잘못된 것일 수는 있지만 작동하지는 않는다고 생각합니다.) – Aerus

+0

첫 번째 질문에 맞습니다. – Aerus

답변

0

참조 문서 : Repeated values

@helper.repeat(myForm("emails"), min = 1) { emailField => 
    @helper.inputText(emailField) 
} 
관련 문제