テンプレート ファイルのスニペットを次に示します。
@helper.form(routes.Signup.signupCont) {
@helper.inputText(signupForm("teamname"))
<div class="row">
<div class="span2"><label class="label_form_email_signup">Team name</label></div>
<div class="span4"><input id="Signup_teamname" type="text" class="span4 input" maxlength="24" name="teamname"></div>
</div>
}
フォーム定義:
def signupForm = Form(
mapping(
"teamname" -> text(minLength = 4, maxLength = 30).verifying(
"Name already in use.", teamname => Team.findByNameStrict(teamname).isEmpty),
"email" -> email.verifying(
"Email already in use.", email => Team.findByEmail(email).isEmpty).verifying(
"University email required", email => email.matches(""".*\.ac\.uk""")),
"password" -> tuple(
"main" -> text(minLength = 6),
"confirm" -> text).verifying(
"Passwords do not match.", password => password._1 == password._2))((teamname, email, password) =>
(teamname, email, password._1))(data => Some(data._1, data._2, ("",""))))
たとえば、間違った電子メールを使用してフォームを送信すると、ページがリロードされますが、フォーム フィールドは空であり (デコンストラクターは失敗します)、電子メール ボックスの横にエラー メッセージは表示されません。この動作をどのように実装しますか?